2

私はRSpecを初めて使用し、次のようなテストシナリオを書いています:

my_object.should_not be_valid

そしてそれは正常に動作します。ただし、モデルの特定の属性が有効でないかどうかをテストしたいと思います。そのような既成の RSpec の動作はありますか? 次のようなものを書くことができますか:

my_object.should_not be_valid(:name)

理想的には、エラーの数も次のようにテストできるようにしたいと考えています。

my_object.should_not be_valid(:name => 1)

しかし、これは今の私にとってそれほど重要ではありません。

4

1 に答える 1

3

thisによると、次のように記述できるはずです。

describe Person do
  it "should validate presence of email" do
    person = Person.new(:email =>; nil)
    person.should_not be_valid
    person.should have(1).error_on(:email)
  end
end

または以下のように、これらの rspec マッチャーを使用して:

describe Person do
  it { should validate_presence_of(:email) }
end
于 2012-04-09T12:03:06.400 に答える