SpringUnit is a framework that enables
Java developers to create unit tests where
test data is separate from test algorithms.
Writing tests this way:
enables easy addition of test cases that differ only in their inputs and expected outcomes
facilitates reuse of data values across test cases
reduces Java source code devoted to the creation and retrieval of data values
promotes and supports a style that removes redundant test algorithmic code
For individuals and organizations that take unit testing seriously -
that is, those that create and maintain tests on equal footing with
delivered source code -
SpringUnit facilitates easier maintenance of unit tests
while introducing low overhead at test creation.
Extending classes from Spring,
SpringUnit marries Spring with JUnit to create a framework
for creating tests of Java software.
The Spring
framework is popular for its support of dependency injection,
aspect-oriented programming and other features, while promoting
the development of Plain Old Java Objects (POJOs) that have few
dependencies on external containers.
JUnit enables Java unit testing
with a widely-known API and execution environment
supported by a large body of tools.
SpringUnit's value proposition starts with its integration with Spring.
The community of developers working with Spring -
in particular, its dependency injection capability -
will find it natural to create test data using
XML bean configuration files.
By imposing constraints regarding the names and
relationships between the configuration files and
the source code of the test cases, SpringUnit
permits dependency injection of data values
in a manner that developers would otherwise have to code by hand.
In this regard, SpringUnit is consistent with one of the fundamental
principles of the Spring framework:
it submerges infrastructure and enables developers to focus
on the business problem at hand - in this case unit testing.
Many Java developers who have made the transition to dependency injection
using Spring never want to go back to the way they coded without it.
SpringUnit aims to offer similar benefits to developers
of JUnit tests.