Mockito-inline无法模拟对象,如何兼顾静态方法模拟与原有测试?
解决方案
你的问题核心是同时引入了不同版本的Mockito核心库和inline扩展库,导致版本冲突——mockito-inline本身已经包含了mockito-core的全部功能,无需重复引入低版本的core依赖。按以下步骤修复:
- 移除
mockito-core的依赖声明,只保留mockito-inline,确保依赖版本统一:testImplementation group: 'org.mockito', name: 'mockito-inline', version: '4.11.0' - 清理项目依赖缓存(比如Gradle执行
clean build --refresh-dependencies,Maven执行clean install -U),确保依赖完全更新。 - 验证原有测试:
- 普通对象Mock(
Mockito.mock(Sample.class))应该恢复正常,因为mockito-inline包含了core的所有基础Mock能力。 - 静态方法Mock保持原有正常工作状态(比如用
Mockito.mockStatic(StaticClass.class)的写法)。
- 普通对象Mock(
如果升级到4.x版本后遇到部分API兼容问题,可以检查测试代码中是否使用了Mockito 3.x已废弃的API,替换为新版本的对应写法即可。
内容的提问来源于stack exchange,提问作者Arushi
相关产品推荐
相关产品推荐

