assertRedirectedToRoute 在 Laravel 5.1 中不工作
assertRedirectedToRoute not working in Laravel 5.1
控制器代码:
return redirect()->route('admin.patient.edit', $patientId);
测试代码:
$this->visit(route('admin.patient.edit', $this->patient->id))
->press('Update');
$this->assertRedirectedToRoute('admin.patient.edit', [$this->patient->id]);
我得到的错误是这样的:
Failed asserting that Illuminate\Http\Response Object (...) is an instance of class
"Illuminate\Http\RedirectResponse".
我已经打印出来自测试内部和控制器内部的响应,它实际上是一个 RedirectReponse 对象。有什么想法吗?
尝试替换
$this->assertRedirectedToRoute('admin.patient.edit', [$this->patient->id]);
和
$this->assertRedirectedToAction('MyController@myMethod');
您已经在路线上admin.patient.edit
一个路由应该是edit
方法的GET请求,另一个应该是update()
方法的post
请求。您正在重定向到相同的确切路线(即 GET 路线)。 admin.patient.update
是该路线的更好名称
我遇到了同样的问题。
请参考这个link. People has been complaining. Turn out that the way we use it was wrong. You can refer to the right way here
每当我们想使用 $this->assertRedirectedToRoute($route)
或 $this->assertRedirectedToAction($action)
或类似的东西时,我们不能使用 $this->visit()
。
我们必须把它改成$this->get()
控制器代码:
return redirect()->route('admin.patient.edit', $patientId);
测试代码:
$this->visit(route('admin.patient.edit', $this->patient->id))
->press('Update');
$this->assertRedirectedToRoute('admin.patient.edit', [$this->patient->id]);
我得到的错误是这样的:
Failed asserting that Illuminate\Http\Response Object (...) is an instance of class
"Illuminate\Http\RedirectResponse".
我已经打印出来自测试内部和控制器内部的响应,它实际上是一个 RedirectReponse 对象。有什么想法吗?
尝试替换
$this->assertRedirectedToRoute('admin.patient.edit', [$this->patient->id]);
和
$this->assertRedirectedToAction('MyController@myMethod');
您已经在路线上admin.patient.edit
一个路由应该是edit
方法的GET请求,另一个应该是update()
方法的post
请求。您正在重定向到相同的确切路线(即 GET 路线)。 admin.patient.update
是该路线的更好名称
我遇到了同样的问题。
请参考这个link. People has been complaining. Turn out that the way we use it was wrong. You can refer to the right way here
每当我们想使用 $this->assertRedirectedToRoute($route)
或 $this->assertRedirectedToAction($action)
或类似的东西时,我们不能使用 $this->visit()
。
我们必须把它改成$this->get()