次のシグネチャを持つメソッドがあります。
Foo GetFooById( int id, params string[] children )
このメソッドは、IDal という名前のインターフェイスで定義されています。
私の単体テストでは、次のように記述します。
IDal dal = A.Fake<IDal>();
Foo fooToReturn = new Foo();
fooToReturn.Id = 7;
A.CallTo(()=>dal.GetFooById(7, "SomeChild")).Returns(fooToReturn);
テストを実行すると、2 番目の引数で署名が一致しません。私はそれを次のように変更しようとしました:
A.CallTo(()=>dal.GetFooById(7, new string[]{"SomeChild"})).Returns(fooToReturn);
しかし、それも失敗でした。これを機能させる唯一の方法は、次を使用することです。
A.CallTo(()=>dal.GetFooById(7, A<string[]>.Ignored )).Returns(fooToReturn);
誰かがそれを変更すると単体テストが壊れるように、2 番目の引数の値を指定できるようにしたいと思います。