当validate_presence_of使用 Shoulda / RSpec测试多个属性时,我得到这些长而重复的代码块,如下所示:
it { should validate_presence_of(:text) }
it { should validate_presence_of(:user) }
it { should validate_presence_of(:commentable) }
[...]
Run Code Online (Sandbox Code Playgroud)
有没有办法把它弄干?像这样的东西:
it { should validate_presence_of(:text, :user, :commentable,...) }
Run Code Online (Sandbox Code Playgroud)
据我所知,Shoulda 没有为此内置任何东西。通常,您希望将选项链接到 shoulda 宏,例如.with_message(...),因此您的语法建议在这些情况下是不可能的。
您可以改为执行以下操作:
[:text, :user, :commentable].each do |field|
it { should validate_presence_of(field) }
end
Run Code Online (Sandbox Code Playgroud)
但是,为了更容易阅读和维护,我不会太担心在您的测试套件中有一点重复。
| 归档时间: |
|
| 查看次数: |
1536 次 |
| 最近记录: |