Mockito调用真正的方法

时间:2013-06-20 16:16:52

标签: java junit mockito

我有一个有两种方法的类。我想模拟类,然后模拟第一个方法,但不是第二个方法。

e.g。

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没有被调用。

我在这里想念什么吗?

2 个答案:

答案 0 :(得分:39)

这也是可以使用Mockito.spy的地方。它允许你对真实物体进行部分模拟。

C cMock = Mockito.spy(new C());
Mockito.doNothing().when(cMock).m1();

答案 1 :(得分:5)

缺少电话: cMock.m2();