模拟 Facades

2018-02-24 15:52 更新

当测试的时候,你或许常会想要模拟调用 Laravel 静态 facade。举个例子,思考下面的控制器行为:

public function getIndex()
{
    Event::fire('foo', ['name' => 'Dayle']);

    return 'All done!';
}

我们可以在 facade 上使用 shouldReceive 方法,来模拟调用 Event 类,它将会返回一个 Mockery mock 对象实例。
模拟 Facade

public function testGetIndex()
{
    Event::shouldReceive('fire')->once()->with('foo', ['name' => 'Dayle']);

    $this->call('GET', '/');
}

注意: 你不应该模拟 Request facade。取而代之,当执行你的测试,传递想要的输入数据进去 call 方法。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号