求与Mockito 1.10.19兼容的PowerMockito Maven依赖版本
解决方案:兼容Mockito 1.10.19的PowerMockito版本
错误原因
你碰到的java.lang.NoClassDefFoundError: org/mockito/plugins/MockMaker$TypeMockability是因为依赖不匹配:
- 当前使用的Mockito版本是1.10.19(属于Mockito 1.x系列)
- 但引入的
powermock-api-mockito2是为**Mockito 2.x+**设计的API依赖,其中MockMaker$TypeMockability是Mockito 2.x才新增的类,1.x版本中不存在,因此导致类找不到的错误。
正确的兼容依赖配置
要和Mockito 1.10.19兼容,需要使用PowerMockito对应Mockito 1.x的API依赖(powermock-api-mockito,无2后缀),且PowerMockito版本需选择1.7.0及以下(该版本区间专门支持Mockito 1.9.5~1.10.x)。推荐使用1.7.0版本,稳定性更好。
若使用JUnit4作为测试框架
<!-- PowerMockito JUnit4 模块 --> <dependency> <groupId>org.powermock</groupId> <artifactId>powermock-module-junit4</artifactId> <version>1.7.0</version> <scope>test</scope> </dependency> <!-- PowerMockito 适配 Mockito 1.x 的 API --> <dependency> <groupId>org.powermock</groupId> <artifactId>powermock-api-mockito</artifactId> <version>1.7.0</version> <scope>test</scope> </dependency>
若使用TestNG作为测试框架
<!-- PowerMockito TestNG 模块 --> <dependency> <groupId>org.powermock</groupId> <artifactId>powermock-module-testng</artifactId> <version>1.7.0</version> <scope>test</scope> </dependency> <!-- PowerMockito 适配 Mockito 1.x 的 API --> <dependency> <groupId>org.powermock</groupId> <artifactId>powermock-api-mockito</artifactId> <version>1.7.0</version> <scope>test</scope> </dependency>
注意事项
- 不要同时引入JUnit4和TestNG的PowerMockito模块,根据实际使用的测试框架二选一即可。
- 你当前使用的mockrunner、mockejb依赖版本与PowerMockito 1.7.0无冲突,可继续保留使用。
内容的提问来源于stack exchange,提问作者Coder001
相关产品推荐
相关产品推荐

