as_null_object
の目的はどのようなもので、どのようなシナリオで使用するのかはわかりません。レリッシュのドキュメントによると:RSpec - as_null_object?
明示的にスタブやメッセージの期待として設定 ではありません任意のメッセージを無視する
as_null_object
メソッドを使用します。
私に登録していません。
as_null_object
の目的はどのようなもので、どのようなシナリオで使用するのかはわかりません。レリッシュのドキュメントによると:RSpec - as_null_object?
明示的にスタブやメッセージの期待として設定 ではありません任意のメッセージを無視する
as_null_object
メソッドを使用します。
私に登録していません。
オブジェクトの動作や相互作用を気にせず、必要なものすべてを明示的にスタブする必要がない場合は、nullオブジェクトを使用します。 nullオブジェクトで引数を指定してメソッドを呼び出すと、NoMethodError
またはArgumentError
にはなりません。 Null Object PatternのWikipediaエントリーも参照してください。
The RSpec Bookがこれを説明します。私はそれを読むことをお勧めします。
... as_nullオブジェクトは唯一我々が期待する にそれを伝えるメッセージをリスンし、他のメッセージを無視するように嘲笑オブジェクトに指示します。
だから、
、あなたの例の一つには、次のコードを持っているとします
...
my_object = mock("my_object").as_null_object
other_thing = OtherThing.new(my_object)
my_object.should_receive(:some_method).with("string parameter value")
...
OtherThingの初期化コードは、この例で、「some_method」ではないというMY_OBJECTする他のメッセージ(他の方法を実行)を送信した場合実際にここでテストしたいものにテストを分離して、彼らの話を聞くことはありません。