我们通过使用FormRequest
的实现资源的所有权和/或输入验证。我们的控制器测试是功能测试,所以我们不嘲笑Request
但使用$this->call($method, $url, $params, ...)
。
问题是,FormRequest
是Request
的子类。有没有一种方法来嘲笑只有authorize()
方法,但保持Request
对象的其余部分非嘲笑?
如果是这样,怎么样?我已经尝试过用Mockery
部分嘲弄和它要么没有工作或我做错了。
$this->mock(\Namespace\Http\Requests\CustomRequest::class . '[authorize]')
->shouldReceive('authorize')
-> .......
PHPUnit的使用嘲讽的系统,而不是嘲弄。
$request = $this->getMock(\Namespace\http\Requests\CustomRequest::class, ['authorize']);
$request->expects($this->once())->method('authorize')->willReturn(true);
希望能帮助到你;