检查属性是否包含RSpec中的2个字母

时间:2013-08-23 14:40:28

标签: ruby-on-rails ruby-on-rails-3 rspec rspec2 rspec-rails

测试字段是否包含带RSpec的2个字母字符串的正确方法是什么?我正在关注一个我认为在rails 2中工作的旧示例。它创建新的Address实例,在其上设置无效值,然后在该实例上触发valid?,最后检查{{1}报告错误。

errors

现在,Rails 3没有错误。所以我尝试了

  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

但问题是subject.errors[:state].should_not be_nil 为空errors[:attribute]而不是Array

2 个答案:

答案 0 :(得分:0)

验证错误现在位于errors.messages

errors.messages.should be_present

答案 1 :(得分:0)

你仍然可以说

subject.errors[:state].should_not be_empty