我正在使用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
之前
答案 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没有正确初始化;