You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Maven至4.0.0-alpha-12后遇Mockito相关NoSuchMethodError求助

解决Mockito NoSuchMethodError 问题

错误原因

org.mockito.MockitoAnnotations.openMocks() 方法是在Mockito 3.4.0版本中新增的,出现该错误说明项目运行时加载的Mockito版本低于3.4.0,和Spring Boot 2.7.18自带的Mockito 4.5.1版本冲突——大概率是Maven升级后,某个依赖引入了更低版本的Mockito,覆盖了spring-boot-starter-test提供的版本。

可行解决步骤

1. 排查依赖冲突

执行Maven命令查看项目依赖树,定位引入旧版本Mockito的依赖:

mvn dependency:tree | grep mockito

从输出结果里找出所有包含mockito-core或mockito-junit-jupiter的条目,确认是否有版本低于4.5.1的记录,以及对应的父依赖。

2. 排除冲突的旧版本依赖

找到引入低版本Mockito的依赖后,在pom.xml中给该依赖添加排除规则,禁止它引入旧版本的Mockito:

<dependency>
    <!-- 替换为实际引入旧版本Mockito的依赖信息 -->
    <groupId>xxx</groupId>
    <artifactId>xxx</artifactId>
    <version>xxx</version>
    <exclusions>
        <exclusion>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-junit-jupiter</artifactId>
        </exclusion>
    </exclusions>
</dependency>

3. 强制统一Mockito版本

如果不想逐个排查冲突,可在pom.xml的dependencyManagement块中强制指定Mockito版本,确保所有依赖都使用和Spring Boot匹配的4.5.1版本:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
            <version>4.5.1</version>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-junit-jupiter</artifactId>
            <version>4.5.1</version>
        </dependency>
    </dependencies>
</dependencyManagement>

4. 规范JUnit依赖使用

你同时引入了JUnit 4和JUnit 5,建议尽量统一测试框架版本:

  • 若以JUnit 5为主,确保mockito-junit-jupiter版本和mockito-core一致;
  • 若保留JUnit 4,需确保mockito-core版本正确,且不要混用JUnit 5的测试注解和JUnit 4的运行环境。

内容的提问来源于stack exchange,提问作者Deepika M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 15:40:14