Привет Я пытаюсь создать тест для контроллера 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.
единственный способ, которым я могу заставить его работать, чтобы попытаться «видеть» сообщение об ошибке на реакции р возраст, сделав тест, как:
public function testStore()
{
$this->visit('/usuario/nuevo')
->press('Crear')
->see('Whoops');
}
Это не работает для меня по двум причинам: 1) Тест зависит от точки зрения на «нажмите» кнопку и отправить запрос (я хочу, чтобы проверить это в другой тест и строго придерживайтесь этого правила для контроллера) и 2) Тест зависит от строки «Упс», которая, по-видимому, является плохой практикой.
Я нашел несколько ответов, утверждая, что кулачный тестовый код должен работать, но это просто не так.
О да, я вижу, что сейчас, однако я изменил вызов с запросом POST и до сих пор получить тот же результат, мои маршруты установка с Laravel-х resource method like: Route :: resource ('usuario', 'Usuarios \ UsuariosController'); – Dany