我的 ActiveRecord 中有以下验证。
validates :active, :inclusion => {:in => ['Y', 'N']}
我正在使用以下内容来测试我的模型验证。
should_not allow_value('A').for(:active)
should allow_value('Y').for(:active)
should allow_value('N').for(:active)
有没有更干净、更彻底的测试方法?我目前正在使用 RSpec2 和 Shoulda 匹配器。
EDIT
经过一番环顾后,我发现,这可能是一种“好的”测试方法,应该不为此提供任何内容,任何需要它的人都可以为其编写自己的自定义匹配器。(并且可能将其贡献回项目) 。一些可能有趣的讨论的链接:
使用shoulda_matchers
在最近的版本中shoulda-matchers
(至少从 v2.7.0 开始),你可以这样做:
expect(subject).to validate_inclusion_of(:active).in_array(%w[Y N])
这测试验证中可接受值的数组是否与此规范完全匹配。
在早期版本中,>= v1.4 ,shoulda_matchers
支持这种语法:
it {should ensure_inclusion_of(:active).in_array(%w[Y N]) }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)