5

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

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

  • jmockit
  • junit
  • spring-test

服务层的测试用例工作正常。我只使用 spring-test 来测试控制器。在测试控制器时,我收到以下错误:

java.lang.IllegalStateException:JMockit 未正确初始化;请确保 jmockit 在运行时类路径中位于 junit 之前,或使用 @RunWith(JMockit.class)

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

但是对于控制器,我需要用@RunWith(SpringJUnit4ClassRunner.class ).

如何解决此错误?

注意:我jmockit之前junit输入过pom.xml

4

3 回答 3

0

尝试更新您的 Maven 项目。在 Eclipse 中右键单击您的项目并转到 Maven > 更新项目...

于 2018-07-12T17:36:26.340 回答
0

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

您是否尝试过使用 -javaagent:?应用于所有 JUnit 测试 (Eclipse) 的最简单方法是转到您的 JRE 设置并添加为 VM 参数(Preferences->JRE->Edit->VM Defaults)。

此外,我通过 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 测试的要求。

于 2015-09-28T15:50:31.893 回答
0

当我使用 JMockit 1.41 版时,我的测试有效,但在更高版本的 Maven 存储库中出现相同的错误

错误:java.lang.IllegalStateException:JMockit 未正确初始化;

于 2019-05-22T07:14:45.163 回答