これはちょっと変わったものです。パラメーターを持たないメソッドをスタブしようとしていますが、パラメーターが何であるかは気にしないので、引数を無視しています。次のようになります。
List<Foo> ignored;
A.CallTo(() => fake.Method(out ignored))
.Returns(something);
スタブ化されたメソッドが次のように呼び出された場合、これは問題なく機能します。
List<Foo> target;
var result = service.Method(out target);
target
ただし、が事前に初期化されている場合は機能しません。例えば:
List<Foo> target = new List<Foo>();
var result = service.Method(out target);
偽物を調べるTag
と、出力パラメータが記録されていることがわかり<NULL>
ます。出力ターゲットがすでに何かに設定されている場合、それらは一致していないと思われます。ignored
テストで を に設定してみましnew List<Foo>()
たA<List<Foo>>.Ignored
が、どちらも結果に影響しません。
私の質問は、 out パラメータのターゲットに既に値がある場合、 out パラメータなしでメソッドをスタブする方法を知っている人はいますか?