Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Mockito调用实方法_Java_Junit_Mockito - Fatal编程技术网

Java Mockito调用实方法

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

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

e、 g

单元测试代码:

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();