A
Request
is an abstract description of tests to be run. Older versions of JUnit did not need such a concept--tests to be run were described either by classes containing tests or a tree of {@link org.junit.Test}s. However, we want to support filtering and sorting, so we need a more abstract specification than the tests themselves and a richer specification than just the classes.
The flow when JUnit runs tests is that a Request
specifies some tests to be run -> a {@link org.junit.runner.Runner} is created for each class implied by the Request
->the {@link org.junit.runner.Runner} returns a detailed {@link org.junit.runner.Description}which is a tree structure of the tests to be run.
@since 4.0