1. ホーム
  2. rspec

Object.any_instance should_receive と expect() to receive の比較

2023-10-23 11:10:41

質問

次のコード片は期待通りに動作します。

Object.any_instance.should_receive(:subscribe)

しかし、新しいrspec期待値を使用すると、それは動作しません。

expect(Object.any_instance).to receive(:subscribe)

エラーは

expected: 1 time with any arguments
received: 0 times with any arguments

expect()で受信するようにするにはどうしたらいいでしょうか?

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

というあまり文書化されていない方法があります。 expect_any_instance_of というメソッドがあり、これは any_instance という特殊なケースを扱います。 を使うべきでしょう。

expect_any_instance_of(Object).to receive(:subscribe)

グーグル expect_any_instance_of で検索してください。