0

使用 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.

4

2 回答 2

0

你还是可以说

subject.errors[:state].should_not be_empty
于 2013-08-23T14:51:56.757 回答
0

验证错误现在在errors.messages

errors.messages.should be_present
于 2013-08-23T14:50:10.333 回答