これは奇妙なビットです。私はパラメータを持つメソッドをスタブしようとしている、私は引数が無視されているので、パラメータが何であるか気にしない。それは次のようになります。スタブメソッドがそうのように呼び出されたときにFakeItEasyの既存の値でパラメータをスタビングアウト
List<Foo> ignored;
A.CallTo(() => fake.Method(out ignored))
.Returns(something);
これは何の問題もなく動作します:target
は、事前に初期化されるとき
List<Foo> target;
var result = service.Method(out target);
しかし、それは動作しません。たとえば:
List<Foo> target = new List<Foo>();
var result = service.Method(out target);
私は偽物でTag
を検査するとき、私はパラメータはので、私が出て、ターゲットがすでに何かに設定されている場合、彼らは一致していない疑いがある<NULL>
として記録されていることがわかります。私はnew List<Foo>()
に私のテストでignored
を設定しようとしましたが、またA<List<Foo>>.Ignored
を試しましたが、いずれも結果に影響しません。
私の質問は、outパラメータが既に値を持っている場合、outパラメータでメソッドをスタブする方法を知っていますか?
これは解決策ではありません。私は何年もの間この素晴らしい文法について考えてきましたが、あなたが何かアイデアを持っていれば私に教えてください。 –