|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjunit.framework.Assert
net.sourceforge.groboutils.junit.v1.TestRunnable
Instances of this class only execute in the runTestRunnables method of the MultiThreadedTestRunner class. TestCases should define inner classes as a subclass of this, implement the runTest() method, and pass in the instantiated class as part of an array to the runTestRunnables method. Call delay( long ) to easily include a waiting period. This class allows for all assertions to be invoked, so that subclasses can be static or defined outside a TestCase. If an exception is thrown from the runTest() method, then all other test threads will terminate due to the error.
The runTest() method needs to be responsive to InterruptedException, resulting from the owning MultiThreadedTestRunner interrupting the thread in order to signal the early termination of the threads. The InterruptedExceptions may be propigated outside the runTest() implementation with no harmful effects. Note that this means that InterruptedExceptions are part of the framework, and as such carry information that your runTest() implementations cannot override; in other words, don't let your test propigate an InterruptedException to indicate an error.
Tests which perform a set of monitoring checks on the object-under-test should extend TestMonitorRunnable, since monitors run until told to stop. The Thread.stop() command will be sent with a MultiThreadedTestRunner.TestDeathException.
Field Summary | |
protected static org.apache.log4j.Logger |
LOG
|
Constructor Summary | |
TestRunnable()
|
Method Summary | |
void |
delay(long millis)
Sleep for millis milliseconds. |
boolean |
isDone()
Returns the status of the owning MultiThreadedTestRunner instance: true means that the tests have completed (monitors may still be active), and false means that the tests are still running. |
void |
run()
Unable to make this a "final" method due to JDK 1.1 compatibility. |
abstract void |
runTest()
Performs the set of processing or checks on the object-under-test, which will be in parallel with other TestRunnable instances. |
Methods inherited from class junit.framework.Assert |
assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertTrue, assertTrue, fail, fail |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected static final org.apache.log4j.Logger LOG
Constructor Detail |
public TestRunnable()
Method Detail |
public abstract void runTest() throws java.lang.Throwable
The implementation should be responsive to InterruptedException exceptions or to the status of Thread.isInterrupted(), as that is the signal used to tell running TestRunnable instances to halt their processing; instances which do not stop within a reasonable time frame will have Thread.stop() called on them.
Non-monitor instances must have this method implemented such that it runs in a finite time; if any instance executes over the MultiThreadedTestRunner instance maximum time limit, then the MultiThreadedTestRunner instance assumes that a test error occurred.
java.lang.Throwable
- any exception may be thrown and will be
reported as a test failure, except for
InterruptedExceptions, which will be ignored.public void delay(long millis) throws java.lang.InterruptedException
java.lang.InterruptedException
- if an interrupt occured during the
8 sleep.public void run()
run
in interface java.lang.Runnable
public boolean isDone()
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |