我正在创建测试,我无法弄清楚为什么form_for中的模型创建在测试中失败但在真实浏览器中有效。有没有一种简单的方法让我看到模型创建中存在的问题?
更好的是,有没有一种简单的方法来测试我通过error_messages_for访问的错误输出?在这种情况下,我还想添加一些测试,以确保格式错误的表单输出正确的错误。
答案 0 :(得分:1)
您可以使用@model.errors
访问对象的验证错误。使用@model.errors.on(:field_name)
获取应用于特定字段的错误消息数组。您还可以在测试中使用@model.errors.invalid?(:field_name)
来断言已触发特定字段的错误。
例如:
test "should reject invalid post" do
@p = Post.new
assert !@p.valid?
assert_equal @p.errors.on(:title), 'cannot be blank'
end