In this section:
Unit Test Assistant allows you to create and execute JUnit tests for Spring controller methods that implement HTTP endpoints using Web MVC. By analyzing code, it can generate and preconfigure runnable test templates that contain sample assertions and initial values. UTA can recognize and configure settings for request body, response body, response mime types, HTTP method, path parameters, query parameters, HTTP headers and session attributes. It supports Spring dependency injection through autowired fields, setter methods, and constructor arguments.
Tests for handler methods in Spring MVC controllers are automatically run as Spring JUnit tests. The tested handler method is invoked with MockMvc, and an inner class is configured to provide beans to Spring for necessary dependencies. If mocking is enabled (see Configuring Preferences), all controller dependencies are added as mocked beans to the inner configuration class.
When you create tests in a Spring Boot project, inner configuration classes are not added. |
To create a Spring test:
A Spring unit test requires the beans to be available when the test is executed to provide necessary dependencies. By default, UTA defines the available beans directly in the test case by creating and populating an inner configuration class with the required Bean methods. (Note: When you create tests in a Spring Boot project, a configuration class is not created, since Spring Boot can automatically scan for dependencies).
Alternatively, you can configure your Spring tests with the @ContextConfiguration annotation by providing the reference to XML configuration files or separate Java configuration classes.
Complete the ContextConfiguration attributes for Spring tests field with one of the following:
- Reference to one or more XML configuration files. Your configuration attributes may resemble the following:
locations={"classpath:/**/FirstContext.xml", "classpath:/**/SecondContext.xml"} |
- Reference to one or more separate Java configuration classes. Your configuration attributes may resemble the following:
classes={FirstConfigClass.class, SecondConfigClass.class} |
You can configure the ContextConfiguration attributes for Spring tests option with a reference to two XML configuration files:
The generated Spring unit test will include a ContextConfiguration annotation with the configured attributes:
For more details on the ContextConfiguration annotation, see the spring documentation https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/context/annotation/Configuration.html