【发布时间】:2021-11-02 14:34:05
【问题描述】:
我目前正在对我的一些表单验证进行单元测试,并且需要模拟一个路由参数,以便它可以通过测试。我已经为请求设置了我认为正确的期望,但我没有正确地做某事。
Rule::unique('users')->ignore($this->route('user')->id)
这是我试图通过的测试模拟。我尝试做的所有事情都是因为路由上的用户属性为空。
$userMock = $this->mock(User::class)->expects()->set('id', 1);
$requestMock = $this->mock(Request::class)
->makePartial()
->shouldReceive('route')
->set('user', $user)
->once()
->andReturn(\Mockery::self());
$this->mock(Rule::class, function ($mock) use ($userMock, $requestMock) {
$mock->expects()->unique('user')->andReturns(\Mockery::self());
$mock->expects()->ignore($requestMock)->andReturns(\Mockery::self());
});
【问题讨论】:
标签: php laravel testing phpunit mockery