mockito的方法调用计数

时间:2012-12-10 10:48:49

标签: java mockito

我有一些问题需要正确预测方法调用计数(时间参数)。那么mockito计数方法如何调用。设置调用方法的断点并在此点停止计数会产生其他计数!

那么计算一些参数的依赖程度还是参数独立?这是一个令我困惑的例子(这不是第一次):

verify(view).setBoxes(eq(attribute), eq(State.some), checkBoxes.capture());
assertThat(checkBoxes.getValue(), allOf(hasEntry(value1, true), hasEntry(value2, false), hasEntry(value3, false)));

//doing some stuff to provoke 2nd call
verify(view, times(2)).setBoxes(eq(attribute), eq(State.some), checkBoxes.capture());
assertThat(checkBoxes.getValue(), allOf(hasEntry(value1, true), hasEntry(value2, true), hasEntry(value3, false))); 

//doing some stuff to provoke 3rd call - with times(3) it fails
verify(view, times(2)).setBoxes(eq(attribute), eq(State.some), checkBoxes.capture());
assertThat(checkBoxes.getValue(), allOf(hasEntry(value1, true), hasEntry(value2, true), hasEntry(value3, true)));

上述测试通过。如您所见,每次捕获的值都会发生变化。每个调试器我可以使用上面检查的参数干净地证明3个调用。我还检查了视图对象的id / hash:它是一个测试单例,所有调用都转到同一个实例。

但是为什么times(3)失败呢?这不是我第一次遇到不可重复的(使用调试器)方法调用计数。我希望我只是误解了方法调用计数的逻辑 - 是这样的吗?

0 个答案:

没有答案
相关问题