2016-02-20 152 views
0

「返回」我測試的函數,而以下結構:如何驗證一個void方法的Mockito

void method1() { 
    if(booleanCondition1) { 
     return; 
    } 
    callMethod2(); 
    callMethod3(); 
... 
.. 
    callMethod-n(); 
} 

我不得不寫這樣的模擬測試,當booleanCondition1值爲TRUE。 一種方法是確保callMethod2()callMethod3()等等,直到callMethod-n()從不被調用(使用Mockito.never())。

有沒有這樣做的有效方式,而不是確保返回後的所有語句都沒有被調用?

換句話說,我可以驗證是否使用Mockito調用「return」語句嗎?

回答

1

您無法測試遇到哪個return聲明,但可以執行verifyZeroInteractionsverifyNoMoreInteractions以涵蓋很多verify(mock, never())聲明。

謹慎使用 - verifyNoMoreInteractions如果過度使用會導致脆性測試。

+0

嗨,傑夫,這將是我的一半問題。我還需要驗證Spied對象(不是mock)上的某些方法未被調用。偵查目標是否也有類似的方法? – venkataratnam

+0

@venkataratnam這些電話以及Mockito的其他大部分電話都是爲了間諜和嘲笑而工作。 –

+0

我在一個像這樣構建的對象(Instance it = spy(new Instance())上試過這個,我得到一個錯誤,說「不是模擬」 – venkataratnam

相關問題