gpt4 book ai didi

ruby - 如何将 `should validate_presence_of` 与自定义错误消息一起使用?

转载 作者:数据小太阳 更新时间:2023-10-29 06:27:42 27 4
gpt4 key购买 nike

我正在使用 Rspec 测试我的 ActiveRecord 模型。我刚刚向我的验证之一添加了自定义错误消息,如下所示:

validates :accepted_terms_at, :presence => {:message => 'You must accept the Terms and Conditions to use this site.'}

现在下面的测试失败了:

it { should validate_presence_of(:accepted_terms_at) }

...错误 Expected errors to include "can't be blank"when accepted_terms_at is set to nil

所以测试失败了,因为它正在查看验证错误消息并希望找到默认消息。

我如何告诉 Rspec 新的验证消息应该是什么?

我尝试过的

1) 消息作为参数:

它{应该 validate_presence_of(:accepted_terms_at, :message => 'your message')}

这给出了错误 wrong number of arguments (2 for 1)

2) 作为链式方法调用的消息

它{应该 validate_presence_of(:accepted_terms_at).with('your message')}

这会引发错误,因为没有 with 方法。

最佳答案

它包含在 shoulda 中并且是标准的:

it { should validate_presence_of(:name).
with_message(/is not optional/) }

http://rubydoc.info/github/thoughtbot/shoulda-matchers/master/Shoulda/Matchers/ActiveModel:validate_presence_of

关于ruby - 如何将 `should validate_presence_of` 与自定义错误消息一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8433153/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com