2016-08-11 49 views
0

我想測試我的方法調用相同的類我不能嘲笑的另一種方法。如何驗證非模擬方法被調用?

例子:

public void methodToTest(){ 

//other stuff to test that can be mocked 
someClassICanMock.doSomething(); 

//method within same class that cannot be mocked 
methodFromSameClassIWantToVerify(); 

} 

如何使用一個verify來檢查,這下我的測試方法調用methodFromSameClassIWantToVerify();?

編輯:沒有一個重複的,因爲我具體是指如何測試這個使用mockito。

+0

聽起來像是你想要一個間諜,像這裏顯示http://stackoverflow.com/a/33670427/1743880 – Tunaki

回答

2

這樣,

MyClass c = new MyClass(); 
someClassICanMock m = mock(someClassICanMock.class); 
doNothing().when(m).doSomething(); 
MyClass s = spy(c); 
s.methodToTest(); 
verify(s , times(1)).methodFromSameClassIWantToVerify(); 
+0

感謝,所以這不會實際運行的方法中的代碼? – java123999

+0

它會,間諜允許你檢查實際實例上的調用 – kuhajeyan

+0

好吧,有沒有辦法調用間諜看到該方法被調用,但實際上並沒有調用其中的代碼? – java123999

相關問題