1
使用FakeItEasy,在我的一個測試中,我有一個類似於下面的設置,當像這樣安裝時,底部的CallTo
斷言失敗。FakeItEasy參數約束在lambda之外被評估爲null
var fakedTool = A.Fake<ITool>();
var concreteUnderTest = new Concrete(fakedTool);
concreteUnderTest.doSomething();
var fooConstraint = A<Foo>.That.Matches(f => f.Name.Equals('Alice'));
var barConstraint = A<Bar>.Ignored;
A.CallTo(() => fakedTool.ObservedFunction(fooConstraint , barConstraint))
.MustHaveHappened(Repeated.Exactly.Once);
我已經放置一個斷點正上方CallTo
線,以及fooConstraint
和barConstraint
的值均爲null
。
當我設置的斷言像這樣,但是,它通過:
A.CallTo(() =>
fakedTool.ObservedFunction(
A<Foo>.That.Matches(f => f.Name.Equals('Alice')),
A<Bar>.Ignored
)
).MustHaveHappened(Repeated.Exactly.Once);
是什麼原因造成這種現象?它的目的是?
您不妨接受答案,向讀者表明它是正確的。 –
@BlairConrad SO防止接受你自己的答案2天 - 我會接受:) –
啊。我不知道。對不起,麻煩了。 –