目的がas_null_object
何であり、どのようなシナリオでそれを使用するのか、私にはわかりません。レリッシュのドキュメントによると:
このメソッドを使用して
as_null_object
、スタブまたはメッセージ期待値として明示的に設定されていないメッセージを無視します。
私に登録していません。
目的がas_null_object
何であり、どのようなシナリオでそれを使用するのか、私にはわかりません。レリッシュのドキュメントによると:
このメソッドを使用して
as_null_object
、スタブまたはメッセージ期待値として明示的に設定されていないメッセージを無視します。
私に登録していません。
オブジェクトの動作や相互作用を気にせず、必要なものすべてを明示的にスタブしたくない場合は、nullオブジェクトを使用します。nullオブジェクトに対して引数を指定してメソッドを呼び出しても、またはは発生しませNoMethodError
んArgumentError
。NullObjectPatternのWikipediaエントリも参照してください。
RSpecブックはこれを説明しています。読むことをお勧めします。
... as_nullオブジェクトは、モックされたオブジェクトに、予期するように指示したメッセージのみをリッスンし、他のメッセージを無視するように指示します。
したがって、例の1つに次のコードがあるとします。
...
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に送信する(他のメソッドを実行する)場合、この例はそれらをリッスンせず、ここで実際にテストしたいものにテストを分離します。