Apache Struts 2 Documentation > Home > Guides > Plugin Developers Guide > JUnit Plugin
#editReport()

The JUnit plugin provides integration with the popular JUnit unit testing framework.

This plugin provides a base StrutsTestCase class that can subclassed for tests that work on Struts 2 components. It is used within Struts 2 itself to test core framework components and many bundled plugins. The class StrutsSpringTestCase is also provided, to support testing of actions that use Spring as the object factory.

See Testing Actions for more details
This plugin is only available with Struts 2.1.1 or later

Features

  • Base test class that starts up a full Struts 2 instance
  • Great for testing how configuration is loaded and Struts 2 components are used

Usage

First, include the plugin your POM (if using Maven 2) under the test scope:

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

if you are using Spring, also add:

<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-spring-plugin</artifactId>
    <version>STRUTS_2_VERSION</version>
</dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jsp-api</artifactId>
    <version>2.0</version>
    <scope>test</scope>
</dependency>

If you are not using Maven 2 to build and test your code, ensure the plugin jar and its dependencies (spring-mock and junit) are in the testing classpath.

Now, your JUnit tests can subclass the StrutsTestCase class, which handles starting and stopping the Struts 2 framework:

public class MyTest extends StrutsTestCase {
 // testing code
}

Settings

This plugin doesn't support any global settings.

Installation

This plugin is meant to be used during unit testing, and not during runtime. Therefore, include it in your build's classpath, but do not deploy it to WEB-INF/lib in your Struts 2 application.