Ruby on Rails测试:我如何测试或至少看到form_for的error_messages_for?

时间:2010-03-09 00:13:00

标签: ruby-on-rails integration-testing functional-testing form-for error-messages-for

我正在创建测试,我无法弄清楚为什么form_for中的模型创建在测试中失败但在真实浏览器中有效。有没有一种简单的方法让我看到模型创建中存在的问题?

更好的是,有没有一种简单的方法来测试我通过error_messages_for访问的错误输出?在这种情况下,我还想添加一些测试,以确保格式错误的表单输出正确的错误。

1 个答案:

答案 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