当测试的时候,你或许常会想要模拟调用 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 方法。