之前有使用 RhinoMocks 的经验,它区分了两种不同的 Mockery
类型的类:一种是严格的,它执行与标准 JMock 模拟完全相同的检查,另一种是normla,它根本不关心您期望中未列出的方法。
例如,如果你想测试你的对象是否调用了方法a(),但整个程序可能随后调用许多其他方法,在JMock中你必须显式列出所有内容,而Rhino只关心你实际列出的那些被调用。是否有办法在 JMock 中实现相同的行为?
最佳答案
but the whole program might subsequently invoke many other methods
每当我觉得 JMock 需要更多“功能”时,我通常会发现自己遇到了设计问题。您是否考虑过需要对同一对象调用许多不同的方法?您能否重构到您正在测试的行为仅涉及对模拟的几次调用?
您可以使用allowing(mockedInterface)
来允许模拟上的所有调用。
关于java - JMock - Expectations block 中方法的唯一子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10802628/