1

私の知るshould_receive限り、モックオブジェクトにのみ適用されます。私が欲しいのは、特定のクラス(オブジェクトではない)が次のような特定のメッセージを受信したかどうかを確認することです。

User.should_receive(:all).once

それ、どうやったら出来るの?

UPD。通常、モデルとコントローラーのテストを作成するには、User.should_receive(:smth).onceを作成できます。しかし、私の場合、libフォルダーから任意のクラスをテストしているので、どういうわけか、常に次のメッセージが表示されます。

<User( [fields] ) (class)> expected :all with (no args) once, but received it 0 times>

なぜそうなのかについてのアイデアはありますか?テストはどういうわけかUserクラスを確認しますが、メッセージを受信したかどうかを確認できません。もちろん、ユーザー実際にメッセージを受け取っていることを10回確認しました。

4

1 に答える 1

5

簡単:

User.should_receive(:all).once

私が欲しいのは、特定のクラス(オブジェクトではない)が特定のメッセージを受信したかどうかを確認することです

クラスオブジェクトです!

于 2010-04-21T14:34:19.740 に答える