2
これを書くにはどうすればハードコードなしで渡すことができます1
。鶏と卵。RSpecはテスト対象のIDを含むshould_receiveマクロ
@sender = Factory(:user)
@receiver = Factory(:user)
mailer = double
mailer.should_receive(:deliver)
Mailer.should_receive(:email).with(1, @sender.id, @receiver.id).and_return(mailer)
# This will create an object with id #1 to make this test pass
@object = Object.create(:sender => @sender, :receiver => @receiver)
私はrspecが 'should_receive'の期待される引数を検証するためにshould-matchersを使用すると思います。そうでなければanything()のようなものは動作しませんでしたか?私の考えは、データベースの最初のIDに一致する独自の引数マッチャーを記述することです。 –
これはここでも要約の問題ですが、私はそれを私の特定の問題で解決しました。私は 'test.rb'で配信をオンにし、' ActionMailer :: Base.deliveries'を使ってメールをテストしています。 – maletor