2

私は次の仕様を持っています:

  context "no firstname present" do
    let(:contact) { build :contact, firstname: 'Mickey', lastname: '', companyname: '' }
    it "should be valid" do
      should be_valid # Does not work
      contact.should be_valid # Works
    end
  end

なぜshould be_valid失敗するのにcontact.should be_valid合格するのですか?itブロック内で、とにかくshould be_validアクセスする必要がありますか?! contact明確にしていただきありがとうございます。

4

1 に答える 1

11

あなたが使用することができますsubject

context "no firstname present" do
  let(:contact) { build :contact, firstname: 'Mickey', lastname: '', companyname: '' }
  subject { contact }
  it { should be_valid }
end

編集

の属性をテストしたり、それに送信されたメッセージをテストしたりするのに最適な方法であるits [リンク]を発見しましたsubject

于 2012-07-12T14:16:04.677 に答える