2015-10-16 94 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));