我有一個具有2個函數的類A: 函數a()返回一個隨機數。函數b()調用一個()並返回返回的值。Mockito when()。thenReturn()無法正常工作
在測試中,我寫了這個:
A test = Mockito.mock(A.class)
Mockito.when(test.a()).thenReturn(35)
assertEquals(35,test.a())
assertEquals(35,test.b())
測試失敗在第二斷言。有誰知道爲什麼?
需要明確的是 - 這不是我真正的代碼,而是一個簡單的代碼來解釋我的問題
@SajanChandran謝謝你!這兩種解決方案都可行2個問題:1)對於第一個解決方案,我必須爲類中的每個函數執行CallRealMethod()方法嗎?爲每個函數調用一個()? 2)對於第二種解決方案,「模擬」和「間諜」有什麼區別? – tamird14
是的,如果你想使用任何真正的方法,你必須調用'thenCallRealMethod'並看到這個http://stackoverflow.com/questions/28295625/mockito-spy-vs-mock –
它取決於你基本決定,嘲笑或調用真正的方法 –