Rhino Mocks: AssertNotCall (除非我在加载时)



我有一个依赖项,在创建我正在测试的对象时会调用它。然而,在那之后就再也不应该调用它了。我该怎么写这样的测试?

我想把这句话作为我的测试(因为我试图遵循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());

因为这将确保它只被调用一次,正如您所指出的,这将由您的设置代码触发。

最新更新