java - Mockito-调用真实方法

标签 java junit mockito

我有一个有 2 个方法的类。我想模拟类,然后模拟第一个方法,而不是第二个。

例如

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

我有什么想念的吗?

最佳答案

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

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

关于java - Mockito-调用真实方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17218694/

相关文章:

java - 如何将 JavaScript 变量发送到 Java 小程序

java - 使用 Guice Servlet 测试项目 : How to bind out-of-scope RequestScoped instances?

Java:无法在 JUnit 测试中读取数据文件

java - 一起运行时 Android JUnit 测试挂起

java - 如何在java中从Jersey模拟requestContext.getUriInfo().getPathParameters()

Android Mockito Kotlin 协程测试取消

java - 按给定顺序从 pojo 填充列表

java - 使用 JSTL 设置 session 变量并在 servlet/ Controller 类中访问它

java - 增加PermGen空间(Tomcat7、Windows Service)

spring-boot - 如何模拟测试 Kotlin Spring boot 2 应用程序