dev*_*v ツ 5 java junit jmockit spring-test spring-test-mvc
我使用的junit 4.12,   jmockit 1.19与spring-test 4.1.1.RELEASE测试我的Spring MVC的Java项目.
我的这些依赖关系的顺序pom.xml:
jmockitjunitspring-test服务层的测试用例工作正常.我只使用spring-test来测试控制器.在测试控制器时,我收到以下错误:
java.lang.IllegalStateException:JMockit未正确初始化; 请确保jmockit在运行时类路径中的junit之前,或者使用@RunWith(JMockit.class)
对于服务层,我通过使用@RunWith(JMockit.class )on test class 解决了这个错误.
但对于控制器我需要注释@RunWith(SpringJUnit4ClassRunner.class ).
如何解决此错误?
注:我把jmockit之前junit在pom.xml
我不完全确定这会解决您的问题,因为我自己刚刚开始使用 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 测试的要求。