1

之前有使用 RhinoMocks 的经验,它区分了两种不同Mockery类型的类:一种是严格的,它执行与标准 JMock 模拟完全一样的检查,另一种是 normla,它根本不关心您未在期望中列出的方法。

例如,如果您想测试是否在您的对象上调用了方法 a(),但整个程序可能随后调用许多其他方法,在 JMock 中您必须明确列出所有内容,而 Rhino 只关心您实际列出的那些被称为。有没有办法在 JMock 中实现相同的行为?

4

1 回答 1

1
but the whole program might subsequently invoke many other methods

每当我觉得 JMock 需要更多“功能”时,我通常会发现我遇到了设计问题。您是否考虑过需要在同一个对象上调用许多不同的方法?您能否重构到您正在测试的行为只涉及对模拟的几次调用?

您可以使用allowing(mockedInterface)来允许模拟上的所有调用。

于 2012-08-09T07:11:10.967 回答