根据标题,只是想知道是否存在easymock机制来测试方法是否在其生命周期内被调用。
答案 0 :(得分:21)
我知道这个问题已经很老了但是我和OP有同样的问题并且做了一些更多的考虑。我找到了以下解决方案:
通过在EasyMock声明的末尾添加.andThrow(new AssertionFailedError()).anyTimes();
,在调用模拟方法时测试将失败。
这比仅仅不使用NiceMock并让测试由于未调整方法调用而失败的原因是因为这允许您专门测试在给定场景中未调用XYZ方法。
我想给David Wallace这个答案。我在以下帖子的答案中找到了这个解决方案:Test that void method didn't get called with EasyMock
答案 1 :(得分:14)
来自EasyMock documentation:
好模拟
在mock()返回的Mock对象上,所有方法的默认行为是为所有意外的方法调用抛出AssertionError。如果你想要一个“漂亮的”Mock对象,默认情况下允许所有方法调用并返回适当的空值(0,null或false),请使用niceMock()代替。
所以你要问的是默认行为。
答案 2 :(得分:11)
默认情况下,Easymock会为您未明确设置期望的任何调用方法抛出异常。