Java Mockito调用实方法
我有一个类,它有两个方法。我想模拟这个类,然后模拟第一个方法,但不是第二个 e、 g 单元测试代码:Java Mockito调用实方法,java,junit,mockito,Java,Junit,Mockito,我有一个类,它有两个方法。我想模拟这个类,然后模拟第一个方法,但不是第二个 e、 g 单元测试代码: C cMock = Mockito.mock(C.class); Mockito.doNothing().when(cMock).m1(); Mockito.when(cMock.m2()).thenCallRealMethod(); 奇怪的是m2没有被调用 我错过了什么吗?错过了呼叫: cMock.m2() 这也是可以使用Mockito.spy的地方。它允许您对真实对象进行部分模拟 C cM
C cMock = Mockito.mock(C.class);
Mockito.doNothing().when(cMock).m1();
Mockito.when(cMock.m2()).thenCallRealMethod();
奇怪的是m2没有被调用
我错过了什么吗?错过了呼叫:
cMock.m2() 这也是可以使用
Mockito.spy
的地方。它允许您对真实对象进行部分模拟
C cMock = Mockito.spy(new C());
Mockito.doNothing().when(cMock).m1();
你的实际C班不是期末考试吗?另外,作为一种替代方法,你可以制作一个间谍而不是模拟,然后你只需要对m1执行
doNothing()
。你能给我们完整的单元测试代码吗?因为在这里,如果不调用m2,这是正常的。你只是在声明模拟的行为。但是没有真正的方法被调用。@Kevin。是的,这不是最终决定。间谍成功了@LaurentG,我错过了cMock.m2();呼叫现在它也起作用了。
C cMock = Mockito.spy(new C());
Mockito.doNothing().when(cMock).m1();