2015-10-16 144 views
3

我有一个方法,这是递归的:的Mockito - 验证递归方法

例如,

public static int myMethod(int index, int number) { 
    if (index<4){ 
     index = index + number; 
     return myMethod(index, number+1); 
    } 
    return index; 
} 

现在这只是一个基本的例子。当我现在想要测试时,如何使用Mockito验证该方法调用了多少次,因为参数会改变?

验证(myMethod(1,2)).times(3)不起作用,因为它只被调用一次,然后1,2将会改变。

+0

这是相当奇怪的问题。单元测试应该测试行为,而不是特定的实现。假设单元测试只是代码的另一种用法,就像您想要使用该方法的其他任何地方一样。 – kan

回答

2

这可以帮助,但如果该方法与正确的参数调用不会验证:

Mockito.verify(myMethod(Mockito.anyInt(), Mockito.anyInt()), Mockito.times(3));