gpt4 book ai didi

java - JMockit 未正确初始化

转载 作者:搜寻专家 更新时间:2023-11-01 00:55:34 25 4
gpt4 key购买 nike

我正在使用 junit 4.12jmockit 1.19spring-test 4.1.1.RELEASE 来测试我的 Spring MVC Java 项目。

这些依赖项在我的 pom.xml 中的顺序:

  • jmockit
  • junit
  • spring-test

服务层的测试用例工作正常。我仅将 spring-test 用于测试 Controller 。在测试 Controller 时,出现以下错误:

java.lang.IllegalStateException: JMockit wasn't properly initialized; please ensure that jmockit precedes junit in the runtime classpath, or use @RunWith(JMockit.class)

对于服务层,我通过在测试类上使用 @RunWith(JMockit.class ) 解决了这个错误。

但对于 Controller ,我需要使用 @RunWith(SpringJUnit4ClassRunner.class ) 进行注释。

如何解决这个错误?

注意:我在pom.xml中把jmockit放在了junit之前

最佳答案

我不完全确定这会解决您的问题,因为我自己刚开始使用 jmockit 并遇到了类似的样式问题。

您是否尝试过使用 -javaagent:?应用于所有 JUnit 测试 (Eclipse) 的最简单方法是转到您的 JRE 设置并添加为 VM 参数(首选项->JRE->编辑->VM 默认值)。

此外,我通过 Marketplace 找到了一个 Eclipse JMockit 插件,它会自动将 javaagent 附加到任何 junit 测试,以避免 JRE 配置。

最后,在你的POM中,你可以试试(虽然我自己还没有测试过):

        <plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<argLine>-javaagent:${org.jmockit:jmockit:jar}</argLine>
</configuration>
</plugin>

但是,请记住,这仅适用于 Maven 启动的测试,不适用于通过 IDE 启动的测试。我还没有找到让 m2e 插件理解将 javaagent 附加到 junit 测试的要求的方法。

关于java - JMockit 未正确初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32817982/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com