2
我有一個具有以下簽名的方法。FakeItEasy&「params」參數
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);
當測試運行,簽名不被在第二個參數匹配。我試圖改變它:
A.CallTo(()=>dal.GetFooById(7, new string[]{"SomeChild"})).Returns(fooToReturn);
但這也是不成功的。我能得到這個工作的唯一方法是使用:
A.CallTo(()=>dal.GetFooById(7, A<string[]>.Ignored)).Returns(fooToReturn);
我寧願能夠指定的第二個參數的值,所以如果有人改變它的單元測試將打破。
突出。起初它仍然沒有工作,但是當我將它更改爲A .That.IsSameSequenceAs(新字符串[] {「SomeChild」})它像一個魅力。 –
我也根據要求在github上添加了一個問題。 –
太好了,我會盡力解決問題。 –