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

发布于 2024-08-24 04:26:47 字数 181 浏览 10 评论 0原文

我正在创建一个测试,但我不明白为什么从 form_for 创建模型在测试中失败,但在真实的浏览器中却有效。有没有一种简单的方法可以让我了解模型创建中存在哪些问题?

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

I'm working on creating a tests, and I can't figure out why the creation of a model from a form_for is failing in the test but works in real browsers. Is there a straightforward way for me to see what the problems are in the model creation?

Even better would be, is there a straightforward way for me to test the error outputs that I access via error_messages_for? In that case, I'd like to also add in tests that make sure that malformed forms are outputting the correct errors.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

§对你不离不弃 2024-08-31 04:26:47

您可以使用 @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

You can access the validation errors on an object using @model.errors. Use @model.errors.on(:field_name) to get an array of error messages applied to a particular field. You can also use @model.errors.invalid?(:field_name) in your tests to assert that an error was triggered for a particular field.

For example:

test "should reject invalid post" do
  @p = Post.new
  assert [email protected]?
  assert_equal @p.errors.on(:title), 'cannot be blank'
end
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文