1

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

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

4

1 回答 1

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
于 2010-03-09T00:25:01.070 回答