Rhino Mocks:“验证”与“断言”

时间:2009-03-28 02:12:55

标签: unit-testing rhino-mocks

使用Rhino Mocks时,何时使用“VerifyAll”以及何时应该“断言”?

2 个答案:

答案 0 :(得分:9)

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

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

verifyall,check out this

另外,区分Mock and Stub

答案 1 :(得分:3)

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

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

所以我猜答案(无论如何)是个人偏好;请参阅上面的链接,其中有几个相同测试的示例,并选择最适合您的示例。