嗨我試圖創建一個不依賴於視圖的laravel控制器的測試。我有以下的方法在我的控制器類:在Laravel 5.1上斷言驗證錯誤
public function store(Request $request)
{
$this->validate($request,[
'name'=>'required',
'login'=>'required',
'password'=>'required'
]);
//TODO: Store to database
return redirect('usuario/nuevo');
}
而且我發現下面的代碼來測試請求是否有任何錯誤:
public function testStore()
{
$response=$this->call('GET','usuario.store');
$this->assertSessionHasErrors();
}
因爲它是這個測試應該通過,因爲我發送無必填字段要求填寫但是PHPUnit的返回以下消息:
Session missing key: errors
Failed asserting that false is true.
我可以讓它工作的唯一方法就是嘗試「看」的反應p中的錯誤信息年齡通過使測試,如:
public function testStore()
{
$this->visit('/usuario/nuevo')
->press('Crear')
->see('Whoops');
}
這並不爲我的工作有兩個原因:1)測試依賴於以「新聞」按鈕,發送請求(我想在測試這個一個不同的測試,並嚴格保持這個控制器)和2)測試取決於'哎呦'字符串存在這顯然是不好的做法。
我發現了幾個答案,聲稱第一個測試代碼應該可以工作,但事實並非如此。
哦,是的,我看到現在,不過我已經改變了請求調用POST,仍然得到同樣的結果,我的路線是建立與Laravel的資源方法如下: Route :: resource('usuario','Usuarios \ UsuariosController'); – Dany