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]空であることです。Arraynil

4

2 に答える 2

0

検証エラーが発生しましたerrors.messages

errors.messages.should be_present
于 2013-08-23T14:50:10.333 に答える
0

あなたはまだ言うことができます

subject.errors[:state].should_not be_empty
于 2013-08-23T14:51:56.757 に答える