org.junit.runners
public class BlockJUnit4ClassRunner extends ParentRunner<org.junit.runners.model.FrameworkMethod> implements Filterable, Sortable
JUnit4ClassRunner
).
BlockJUnit4ClassRunner has advantages for writers of custom JUnit runners
that are slight changes to the default behavior, however:
Statement
s,
allowing new operations to be inserted into the appropriate point in the
execution flow.
JUnit4ClassRunner
was in an internal package, and is now deprecated.
Constructor and Description |
---|
BlockJUnit4ClassRunner(java.lang.Class<?> klass)
Creates a BlockJUnit4ClassRunner to run
klass |
Modifier and Type | Method and Description |
---|---|
protected void |
collectInitializationErrors(java.util.List<java.lang.Throwable> errors)
Adds to
errors a throwable for each problem noted with the test class (available from ParentRunner.getTestClass() ). |
protected java.util.List<org.junit.runners.model.FrameworkMethod> |
computeTestMethods()
Returns the methods that run tests.
|
protected java.lang.Object |
createTest()
Returns a new fixture for running a test.
|
protected Description |
describeChild(org.junit.runners.model.FrameworkMethod method)
Returns a
Description for child , which can be assumed to
be an element of the list returned by ParentRunner.getChildren() |
protected java.util.List<org.junit.runners.model.FrameworkMethod> |
getChildren()
Returns a list of objects that define the children of this Runner.
|
protected org.junit.runners.model.Statement |
methodBlock(org.junit.runners.model.FrameworkMethod method)
Returns a Statement that, when executed, either returns normally if
method passes, or throws an exception if method fails. |
protected org.junit.runners.model.Statement |
methodInvoker(org.junit.runners.model.FrameworkMethod method,
java.lang.Object test)
Returns a
Statement that invokes method on test |
protected org.junit.runners.model.Statement |
possiblyExpectingExceptions(org.junit.runners.model.FrameworkMethod method,
java.lang.Object test,
org.junit.runners.model.Statement next)
Returns a
Statement : if method 's @Test annotation
has the expecting attribute, return normally only if next
throws an exception of the correct type, and throw an exception
otherwise. |
protected void |
runChild(org.junit.runners.model.FrameworkMethod method,
RunNotifier notifier)
Runs the test corresponding to
child , which can be assumed to be
an element of the list returned by ParentRunner.getChildren() . |
protected java.lang.String |
testName(org.junit.runners.model.FrameworkMethod method)
Returns the name that describes
method for Description s. |
protected void |
validateInstanceMethods(java.util.List<java.lang.Throwable> errors)
Adds to
errors for each method annotated with @Test ,
@Before , or @After that is not a public, void instance
method with no arguments. |
protected void |
validateTestMethods(java.util.List<java.lang.Throwable> errors)
Adds to
errors for each method annotated with @Test that
is not a public, void instance method with no arguments. |
protected void |
validateZeroArgConstructor(java.util.List<java.lang.Throwable> errors)
Adds to
errors if the test class's single constructor
takes parameters |
protected org.junit.runners.model.Statement |
withAfters(org.junit.runners.model.FrameworkMethod method,
java.lang.Object target,
org.junit.runners.model.Statement statement)
Returns a
Statement : run all non-overridden @After
methods on this class and superclasses before running next ; all
After methods are always executed: exceptions thrown by previous steps
are combined, if necessary, with exceptions from After methods into a
MultipleFailureException . |
protected org.junit.runners.model.Statement |
withBefores(org.junit.runners.model.FrameworkMethod method,
java.lang.Object target,
org.junit.runners.model.Statement statement)
Returns a
Statement : run all non-overridden @Before
methods on this class and superclasses before running next ; if
any throws an Exception, stop execution and pass the exception on. |
protected org.junit.runners.model.Statement |
withPotentialTimeout(org.junit.runners.model.FrameworkMethod method,
java.lang.Object test,
org.junit.runners.model.Statement next)
Returns a
Statement : if method 's @Test annotation
has the timeout attribute, throw an exception if next
takes more than the specified number of milliseconds. |
childrenInvoker, classBlock, filter, getDescription, getName, getTestClass, run, sort, validatePublicVoidNoArgMethods, withAfterClasses, withBeforeClasses
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
filter
public BlockJUnit4ClassRunner(java.lang.Class<?> klass) throws org.junit.runners.model.InitializationError
klass
org.junit.runners.model.InitializationError
- if the test class is malformed.protected void runChild(org.junit.runners.model.FrameworkMethod method, RunNotifier notifier)
ParentRunner
child
, which can be assumed to be
an element of the list returned by ParentRunner.getChildren()
.
Subclasses are responsible for making sure that relevant test events are
reported through notifier
runChild
in class ParentRunner<org.junit.runners.model.FrameworkMethod>
protected Description describeChild(org.junit.runners.model.FrameworkMethod method)
ParentRunner
Description
for child
, which can be assumed to
be an element of the list returned by ParentRunner.getChildren()
describeChild
in class ParentRunner<org.junit.runners.model.FrameworkMethod>
protected java.util.List<org.junit.runners.model.FrameworkMethod> getChildren()
ParentRunner
getChildren
in class ParentRunner<org.junit.runners.model.FrameworkMethod>
protected java.util.List<org.junit.runners.model.FrameworkMethod> computeTestMethods()
@Test
on this
class and superclasses that are not overridden.protected void collectInitializationErrors(java.util.List<java.lang.Throwable> errors)
ParentRunner
errors
a throwable for each problem noted with the test class (available from ParentRunner.getTestClass()
).
Default implementation adds an error for each method annotated with
@BeforeClass
or @AfterClass
that is not
public static void
with no arguments.collectInitializationErrors
in class ParentRunner<org.junit.runners.model.FrameworkMethod>
protected void validateZeroArgConstructor(java.util.List<java.lang.Throwable> errors)
errors
if the test class's single constructor
takes parametersprotected void validateInstanceMethods(java.util.List<java.lang.Throwable> errors)
errors
for each method annotated with @Test
,
@Before
, or @After
that is not a public, void instance
method with no arguments.protected void validateTestMethods(java.util.List<java.lang.Throwable> errors)
errors
for each method annotated with @Test
that
is not a public, void instance method with no arguments.protected java.lang.Object createTest() throws java.lang.Exception
java.lang.Exception
protected java.lang.String testName(org.junit.runners.model.FrameworkMethod method)
method
for Description
s.
Default implementation is the method's nameprotected org.junit.runners.model.Statement methodBlock(org.junit.runners.model.FrameworkMethod method)
method
passes, or throws an exception if method
fails.
Here is an outline of the default implementation:
method
on the result of createTest()
, and
throw any exceptions thrown by either operation.
method
's @Test
annotation has the expecting
attribute, return normally only if the previous step threw an
exception of the correct type, and throw an exception otherwise.
method
's @Test
annotation has the timeout
attribute, throw an exception if the previous step takes more
than the specified number of milliseconds.
@Before
methods on this class
and superclasses before any of the previous steps; if any throws an
Exception, stop execution and pass the exception on.
@After
methods on this class
and superclasses before any of the previous steps; all After methods are
always executed: exceptions thrown by previous steps are combined, if
necessary, with exceptions from After methods into a
MultipleFailureException
.
protected org.junit.runners.model.Statement methodInvoker(org.junit.runners.model.FrameworkMethod method, java.lang.Object test)
Statement
that invokes method
on test
protected org.junit.runners.model.Statement possiblyExpectingExceptions(org.junit.runners.model.FrameworkMethod method, java.lang.Object test, org.junit.runners.model.Statement next)
Statement
: if method
's @Test
annotation
has the expecting
attribute, return normally only if next
throws an exception of the correct type, and throw an exception
otherwise.protected org.junit.runners.model.Statement withPotentialTimeout(org.junit.runners.model.FrameworkMethod method, java.lang.Object test, org.junit.runners.model.Statement next)
Statement
: if method
's @Test
annotation
has the timeout
attribute, throw an exception if next
takes more than the specified number of milliseconds.protected org.junit.runners.model.Statement withBefores(org.junit.runners.model.FrameworkMethod method, java.lang.Object target, org.junit.runners.model.Statement statement)
Statement
: run all non-overridden @Before
methods on this class and superclasses before running next
; if
any throws an Exception, stop execution and pass the exception on.protected org.junit.runners.model.Statement withAfters(org.junit.runners.model.FrameworkMethod method, java.lang.Object target, org.junit.runners.model.Statement statement)
Statement
: run all non-overridden @After
methods on this class and superclasses before running next
; all
After methods are always executed: exceptions thrown by previous steps
are combined, if necessary, with exceptions from After methods into a
MultipleFailureException
.