こんにちは私は、ビューに依存しない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();
}
を
Session missing key: errors
Failed asserting that false is true.
私はそれを動作させることができる唯一の方法は、応答pにエラーメッセージ「を参照してください。」しようとすることです:必須フィールドせずに要求を送信すると、しかし、PHPUnitが次のメッセージを返し記入しましたこれは、2つの理由で私のために動作しません
public function testStore()
{
$this->visit('/usuario/nuevo')
->press('Crear')
->see('Whoops');
}
::のようなテストを行うことによって、年齢1)試験は、「プレス」を視野に依存ボタンや要求を送信(私はこれをテストしたいです別のテストとこれをコントローラのために厳密に保つ)、そして2)テストは、明らかに悪い習慣である 'Whoops'ストリングに依存する。
私は最初のテストコードがうまくいくはずだと主張するいくつかの答えを見つけましたが、単純にはそうではありません。
を送信リソースメソッドは次のようになります。 Route :: resource( 'usuario'、 'Usuarios \ UsuariosController'); – Dany