Context Management
Each TestContext
provides context management and caching support for the test instance
for which it is responsible. Test instances do not automatically receive access to the
configured ApplicationContext
. However, if a test class implements the
ApplicationContextAware
interface, a reference to the ApplicationContext
is supplied
to the test instance. Note that AbstractJUnit4SpringContextTests
and
AbstractTestNGSpringContextTests
implement ApplicationContextAware
and, therefore,
provide access to the ApplicationContext
automatically.
@Autowired ApplicationContext
As an alternative to implementing the
Similarly, if your test is configured to load a
Dependency injection by using |
Test classes that use the TestContext framework do not need to extend any particular
class or implement a specific interface to configure their application context. Instead,
configuration is achieved by declaring the @ContextConfiguration
annotation at the
class level. If your test class does not explicitly declare application context resource
locations or component classes, the configured ContextLoader
determines how to load a
context from a default location or default configuration classes. In addition to context
resource locations and component classes, an application context can also be configured
through application context initializers.
The following sections explain how to use Spring’s @ContextConfiguration
annotation to
configure a test ApplicationContext
by using XML configuration files, Groovy scripts,
component classes (typically @Configuration
classes), or context initializers.
Alternatively, you can implement and configure your own custom SmartContextLoader
for
advanced use cases.