哪个jUnit jar文件支持Struts2?

时间:2015-02-10 08:36:36

标签: struts2 junit4

我正在为我的项目使用Struts 2.0。我想做Junit测试。我应该使用哪个jar文件。我可以使用Struts测试吗?目前,我试图使用struts Junit插件,但它总是显示Spring框架NoClassDefFoundError的异常,但我没有在我的项目中使用Spring。我该怎么办?

当我延长StrutsTestCase时,我收到此错误。

java.lang.NoClassDefFoundError: org/springframework/mock/web/MockServletContext
at org.apache.struts2.util.StrutsTestCaseHelper.initDispatcher(StrutsTestCaseHelper.java:48)
at org.apache.struts2.StrutsTestCase.initDispatcher(StrutsTestCase.java:45)
at org.apache.struts2.StrutsTestCase.setUp(StrutsTestCase.java:41)
at junit.framework.TestCase.runBare(TestCase.java:132)
at junit.framework.TestResult$1.protect(TestResult.java:110)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.framework.TestResult.run(TestResult.java:113)
at junit.framework.TestCase.run(TestCase.java:124)
at junit.framework.TestSuite.runTest(TestSuite.java:232)
at junit.framework.TestSuite.run(TestSuite.java:227)
at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:79)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: java.lang.ClassNotFoundException: org.springframework.mock.web.MockServletContext
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 17 more

1 个答案:

答案 0 :(得分:0)

不要使用这个插件,因为它取决于Spring,你可以清楚地看到。 Here你可以看到它的依赖关系。使用官方junit库。例如,如果您使用Maven,则只需定义this依赖项:

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
</dependency>

如果您不使用Maven:

  • 你真的应该:)
  • 使用this link获取JUnit。

struts2-junit-plugin与Maven一起使用

如果你想使用JUnit测试你的动作,你应该依赖这个Maven工件

<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-junit-plugin</artifactId>
    <version>2.3.20</version>
    <scope>test</scope>
</dependency>

这样,当您进行测试时,所有必要的罐子都已到位。由于范围设置为test,因此插件及其依赖仅用于测试时间。您的最终申请jar / war不会包含这些内容 - 测试类也不会。