JMockit未正确初始化

时间:2015-09-28 07:45:06

标签: java junit jmockit spring-test spring-test-mvc

我正在使用junit 4.12jmockit 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之前

3 个答案:

答案 0 :(得分: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测试的要求。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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