4 回答
TA贡献1773条经验 获得超3个赞
如果您使用的是较新版本的 SpringBoot,它可能带有大于 3.12.4 的 Mockito 版本,这可能会使您的 powermock-api-mockito2 无法工作,因为在较新版本的 Mockito 中,org.mockito 中的 get() 方法.Answers 已被删除,它已在 3.12.4 中弃用,并且 powermock-api-mockito 不适用于新版本。
作为一种解决方案,您可以降级 Mockito 版本,或者您可以使用更新版本的 Mockito 来模拟您的最终类或方法。
TA贡献1780条经验 获得超1个赞
如果您删除 PowerMock 依赖项,该示例将起作用。问题是所使用的 Mockito 和 PowerMock 的版本彼此不兼容。对于 PowerMock 2.x,您至少需要 Mockito 2.8.9+。PowerMock 提供了一个兼容性列表,显示了哪个版本的 PowerMock 与哪个版本的 Mockito 兼容。修复版本以相互兼容,您的示例将开始工作。
TA贡献1842条经验 获得超21个赞
当我尝试将 Mockito 与 Junit 5 (@ExtendWith) 一起使用时,我遇到了类似的问题
java.lang.NoSuchMethodError: org.mockito.Mockito.mockitoSession()Lorg/mockito/session/MockitoSessionBuilder;
这是因为类路径中存在两个版本的 mockito(一个是 mockito-all,另一个是 mockito-core),通过传递依赖。从 POM 中显式删除 mockito-all 依赖项后,问题得到解决。
@ExtendWith(MockitoExtension.class)
public class TodoBusinessImplWIthMockWithAnnotationTest {
@Mock
TodoService todoService;
@Test
public void usingMockito() {
......
}
}
TA贡献1883条经验 获得超3个赞
删除到您的 pom.xml mockito-all 并使用 mockito-core
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<scope>test</scope>
</dependency>
@ExtendWith(MockitoExtension.class)您可以在测试调用中使用注释 。在测试类中用于 @InjectMocks注入您需要测试的服务,这将允许@Mock他的依赖调用。
添加回答
举报