Home > Guides > Plugin Developers Guide > JUnit Plugin |

Apache Struts 2 Documentation
JUnit Plugin
Edit Page Browse Space Add Page Add News

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.

Children Show Children Hide Children
$page.link($child) (Apache Struts 2 Documentation)