模拟 Facades
最后更新于:2022-04-01 15:10:24
当测试的时候,你或许常会想要模拟调用 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 方法。