Тестирование контроллера Rails - ошибки валидации не приводят к ответу об ошибке HTTP - PullRequest
2 голосов
/ 15 января 2010

У меня есть тест, производный от ActionController, который отправляет запрос 'post' на тестируемый контроллер с неверными данными. Контроллер пытается создать новый объект и сохранить его. Модель имеет методы проверки, которые запускаются при сохранении, и они генерируют ошибку проверки, обнаруживающую неверные данные, отправленные тестом.

Пока все хорошо. Теперь контроллер проверяет, является ли состояние ответа HTTP ошибочным, используя assert_response: fail. Тем не менее, на этом шаге тест не пройден:

Ожидаемый ответ: <: fail>, но был <200>

@ obj.errors правильно заполнен ошибкой проверки, но почему-то HTTP-ответ всегда равен 200.

Есть какие-нибудь подсказки?

1 Ответ

3 голосов
/ 15 января 2010

Что делает код вашего контроллера? Обычным способом обработки ошибок валидации в Rails является отправка ответа 200 OK (например, с render :action => 'new'). Ответ содержит форму (заполненную представленными параметрами) вместе с сообщениями об ошибках проверки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...