Phpunit 资产重定向到未在Laravel 5.1中工作

Phpunit 资产重定向到未在Laravel 5.1中工作,phpunit,laravel-5.1,Phpunit,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

控制器代码:

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".
我已经从测试内部和控制器内部打印出响应,它实际上是一个RedirectResponse对象。有什么想法吗?

尝试替换

$this->assertRedirectedToRoute('admin.patient.edit',[$this->patient->id])

$this->assertRedirectedToAction('MyController@myMethod');

您已经在路线
管理患者。编辑


一个路由应该是对
edit
方法的GET请求,另一个路由应该是对
update()
方法的
post
请求。您正在重定向到相同的确切路线(即GET路线)
admin.patient.update
将是该路线的更好名称

我遇到了同样的问题

请参考这个。人们一直在抱怨。结果证明我们使用它的方式是错误的。你可以参考正确的方法

每当我们想要使用
$this->assertRedirectedToRoute($route)
$this->assertRedirectedToAction($action)
或类似工具时,我们不能使用
$this->visit()

我们必须将其更改为
$this->get()