7

使用 Rhino Mocks 时,什么时候适合使用“VerifyAll”,什么时候应该使用“Asserts”?

4

2 回答 2

9

VerifyAll 和 Verify 用于检查是否调用了某些方法(并可能验证调用它们的参数)。这被认为是“基于交互的测试”,当您想要验证被测系统是否在其依赖项之一上调用方法时使用。

断言通常意味着您要确保返回的值具有正确的值。断言用于所谓的“基于状态的测试”,它本质上是在被测试系统被执行后验证它的状态。

验证一下,看看这个

另外,区分Mock 和 Stub

于 2009-03-28T02:29:06.497 回答
3

我相信 VerifyAll 属于使用 RhinoMocks 的旧风格,您将有一个记录步骤和一个回放步骤,之后您将验证所有期望。在此模型中,您将在记录步骤中设置一个期望(例如,期望此方法将使用参数 x、y 和 z 等调用)。

较新版本的 RhinoMocks 引入了Arrange-Act-Assert (AAA)语法作为首选模式;使用这种模式,在测试方法结束时使用断言更有意义。仍然可以使用 VerifyAllExpectations(),但我个人认为,如果您的所有断言在测试结束时都发生在一个块中,它会更容易阅读。

所以我想答案(无论如何对我来说)是个人喜好。请参阅上面的链接,其中他有几个相同测试的示例,然后选择最适合您的一个。

于 2009-03-28T03:52:37.403 回答