【问题标题】:Ruby on Rails testing: How can I test or at the very least see a form_for's error_messages_for?Ruby on Rails 测试:我如何测试或至少查看 form_for 的 error_messages_for?
【发布时间】:2010-03-09 00:13:00
【问题描述】:
我正在创建测试,但我无法弄清楚为什么从 form_for 创建模型在测试中失败但在真实浏览器中有效。有没有一种简单的方法可以让我了解模型创建中的问题?
更好的是,我是否有一种直接的方法来测试我通过 error_messages_for 访问的错误输出?在这种情况下,我还想添加测试以确保格式错误的表单输出正确的错误。
【问题讨论】:
标签:
ruby-on-rails
integration-testing
functional-testing
form-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 !@p.valid?
assert_equal @p.errors.on(:title), 'cannot be blank'
end