使用 RSpec 测试字段是否包含 2 个字母字符串的正确方法是什么?我正在关注一个我猜想在 rails 2 中工作的旧示例。它创建新Address
实例,在其上设置无效值,然后valid?
在该实例上触发,最后检查errors
报告是否有问题。
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 没有errors.on,所以我尝试了
subject.errors[:state].should_not be_nil
但这里的问题是它errors[:attribute]
是空Array
的而不是nil
.