web-dev-qa-db-ja.com

Object.any_instance should_receive vs expect()to receive

次のコードは期待どおりに機能します。

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()を使用してこの作業を行うにはどうすればよいですか?

71
Calin

expect_any_instance_ofの特殊なケースを処理するany_instanceと呼ばれるあまり文書化されていないメソッドがあります。以下を使用する必要があります。

expect_any_instance_of(Object).to receive(:subscribe)

Google expect_any_instance_ofで詳細をご覧ください。

149
Peter Alfvin