25
我有一個有2種方法的類。我想嘲笑課程,然後嘲笑第一種方法,但不是第二種方法。Mockito-調用真正的方法
例如
class C {
void m1() { ...}
boolean m2() { ... return flag;}
}
單元測試代碼:
C cMock = Mockito.mock(C.class);
Mockito.doNothing().when(cMock).m1();
Mockito.when(cMock.m2()).thenCallRealMethod();
奇怪的是,M2不會被調用。
我想念這裏的一切嗎?
是你的實際C類非最終?此外,作爲替代方案,您可以創建一個Spy而不是Mock,然後您只需爲m1執行'doNothing()'。 –
你可以給我們整個單元測試代碼嗎?因爲在這裏,如果m2沒有被調用,那很正常。你只是宣佈模擬的行爲。但是沒有真正的方法被調用。 – LaurentG
@凱文。是的,它不是最終的。間諜工作! –