1. ホーム
  2. ruby-on-rails

[解決済み] RSpecで "should_receive "を何度も言うには?

2022-08-30 12:27:21

質問

私のテストでは、次のようになります。

Project.should_receive(:find).with(@project).and_return(@project)

が、オブジェクトがそのメソッド呼び出しを2回受けた場合、私は次のようにしなければなりません。

Project.should_receive(:find).with(@project).and_return(@project)
Project.should_receive(:find).with(@project).and_return(@project)

のような言い方をする方法はないのでしょうか?

Project.should_receive(:find).with(@project).and_return(@project).times(2)

どのように解決するのですか?

これは古いものです。ご確認ください。 Uri さんの回答 をご覧ください。

を2回分。

Project.should_receive(:find).twice.with(@project).and_return(@project)

をちょうどn回繰り返す。

Project.should_receive(:find).exactly(n).times.with(@project).and_return(@project)

を少なくともn回繰り返す。

Project.should_receive(:msg).at_least(n).times.with(@project).and_return(@project)

詳細は https://www.relishapp.com/rspec/rspec-mocks/v/2-13/docs/message-expectations/receive-counts 以下 受信回数

お役に立てれば幸いです =)