org.junit.experimental.theories
Class Theories
java.lang.Object
org.junit.runner.Runner
org.junit.runners.ParentRunner<FrameworkMethod>
org.junit.runners.BlockJUnit4ClassRunner
org.junit.experimental.theories.Theories
- All Implemented Interfaces:
- Describable, Filterable, Sortable
public class Theories
- extends BlockJUnit4ClassRunner
Method Summary |
Statement |
methodBlock(FrameworkMethod method)
Returns a Statement that, when executed, either returns normally if
method passes, or throws an exception if method fails. |
Theories
public Theories(Class<?> klass)
throws InitializationError
- Throws:
InitializationError
methodBlock
public Statement methodBlock(FrameworkMethod method)
- Description copied from class:
BlockJUnit4ClassRunner
- Returns a Statement that, when executed, either returns normally if
method
passes, or throws an exception if method
fails.
Here is an outline of the default implementation:
- Invoke
method
on the result of createTest()
, and
throw any exceptions thrown by either operation.
- HOWEVER, if
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.
- HOWEVER, if
method
's @Test
annotation has the timeout
attribute, throw an exception if the previous step takes more
than the specified number of milliseconds.
- ALWAYS allow
@Rule
fields to modify the execution of the above
steps. A Rule
may prevent all execution of the above steps, or
add additional behavior before and after, or modify thrown exceptions.
For more information, see MethodRule
- ALWAYS run all non-overridden
@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.
- ALWAYS run all non-overridden
@After
methods on this class
and superclasses after 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
.
This can be overridden in subclasses, either by overriding this method,
or the implementations creating each sub-statement.