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
@凯文。是的,它不是最终的。间谍工作! –