1

Я работаю над созданием тестов, и я не могу понять, почему создание модели из form_for не выполняется в тесте, но работает в реальных браузерах. Есть ли простой способ узнать, какие проблемы возникают при создании модели?Проверка Ruby on Rails: как я могу проверить или, по крайней мере, увидеть form_for's error_messages_for?

Еще лучше было бы, есть ли простой способ проверить ошибки, которые я получаю через error_messages_for? В этом случае я также хотел бы добавить в тесты, чтобы убедиться, что неверные формы выдают правильные ошибки.

ответ

1

Вы можете получить доступ к ошибкам проверки объекта, используя @model.errors. Используйте @model.errors.on(:field_name), чтобы получить массив сообщений об ошибках, применяемых к определенному полю. Вы также можете использовать @model.errors.invalid?(:field_name) в своих тестах, чтобы утверждать, что ошибка была вызвана для определенного поля.

Например:

test "should reject invalid post" do 
    @p = Post.new 
    assert [email protected]? 
    assert_equal @p.errors.on(:title), 'cannot be blank' 
end