【发布时间】:2016-02-22 17:39:50
【问题描述】:
使用 FakeItEasy,在我的一项测试中,我的设置类似于下面的设置,并且在这样设置时,底部的 CallTo 断言失败。
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);
是什么导致了这种行为?是故意的吗?
【问题讨论】:
标签: c# .net unit-testing tdd fakeiteasy