Ruby on rails 检查属性在RSpec中是否包含2个字母
如果字段包含带RSpec的2个字母字符串,那么正确的测试方法是什么?我遵循的是一个在rails 2中工作的老例子。它创建新的Ruby on rails 检查属性在RSpec中是否包含2个字母,ruby-on-rails,ruby-on-rails-3,rspec,rspec2,rspec-rails,Ruby On Rails,Ruby On Rails 3,Rspec,Rspec2,Rspec Rails,如果字段包含带RSpec的2个字母字符串,那么正确的测试方法是什么?我遵循的是一个在rails 2中工作的老例子。它创建新的地址实例,在其上设置无效值,然后在该实例上触发有效?,最后检查错误是否报告错误 it 'requires state to be of length 2' do subject = Address.new subject.state = 'Cal' should_not be_valid subject.errors.on
地址
实例,在其上设置无效值,然后在该实例上触发有效?
,最后检查错误
是否报告错误
it 'requires state to be of length 2' do
subject = Address.new
subject.state = 'Cal'
should_not be_valid
subject.errors.on(:state).should_not be_nil
end
现在,Rails 3没有错误。on,所以我尝试了
subject.errors[:state].should_not be_nil
但是这里的问题是,
errors[:attribute]
是空的Array
而不是nil
验证错误现在位于errors中。消息
errors.messages.should be_present
你仍然可以说
subject.errors[:state].should_not be_empty
这很有效,谢谢。只有一个问题,在你看来,有没有更好的方法来测试这个?你可以使用shoulda验证助手<代码>它{应该不允许值(“Cal”)。对于(:state)}