我有一个依赖项,在创建我正在测试的对象时会调用它。然而,在那之后就再也不应该调用它了。我该怎么写这样的测试?
我想把这句话作为我的测试(因为我试图遵循AAA风格的测试写作)。但是,由于在安装过程中调用了Publish
方法,因此此断言将失败。
Notifier.AssertWasNotCalled(Sub(n) n.Publish(Arg(Of Message).Is.Anything))
有没有办法"重置"对我嘲笑过的依赖关系的调用?
注意:我可以设置它,以便在初始化后检查Message
参数的属性是否为我期望的值,但这会使我的测试更加脆弱,如果可能的话,我希望避免它。
_notifier.AssertWasNotCalled(
Sub(n) n.Publish(Arg(Of Message).Matches(Function(m) m.property = "yo!")))
以下是我的操作方法:
_notifier.AssertWasCalled(function(n) p.Publish, function(c) c.Repeat.Once().IgnoreArguments());
因为这将确保它只被调用一次,正如您所指出的,这将由您的设置代码触发。