net.sourceforge.groboutils.junit.v1 |
net.sourceforge.groboutils.junit.v1
The GroboUtils JUnit Extention: classes to help in the creation and
execution of JUnit tests.
Overview
This package has been designed to follow the JUnit extention patterns (see
my article in the documentation). Instead of creating direct TestCase
subclasses to add functionality to actual TestCases, test extentions have been
refactored for ease-of-use.
Utility Testing Classes
The classes listed here follow the JUnit Utility Functionality pattern. They
give more testing functionality to unit tests through a separate instance,
rather than requiring the tests to subclass to gain the functionality.
AssertTestFactory & IntegrationTestCase
There are two kinds of "validations" a test can generate: soft and hard. A
hard validation must be true - any inconsistency will result in the whole test
to fail. A soft validation will still cause a test error, but the test may
continue. Soft validations are less useful than hard validations for unit
tests, since the point of unit tests is to make sure a small part of an
application has the absolute correct behavior. However, for integration tests,
this becomes less a necessity. An integration test may take great efforts
setting up a scenario, then runs a battery of validations against the setup.
A hard validation in these situations does not expose all the issues which
may lie in the source.
Hard validations are supported in JUnit with the Assert class. The
IntegrationTestCase class in this framework allows for better support
of soft validations by executing the soft asserts as a seperate test. This
allows for proper reporting of the failure without stopping the flow of the
test.
MultiThreadedTestRunner
It can be very difficult to test code which requires inter-thread communication,
or which may encounter synchronization problems. This class allows a TestCase
to create runner inner classes to perform a bit of functionality for a thread,
then pass those instances to a MultiThreadedTestRunner instance to allow them
to run in parallel. In situations where a dead-lock may occur, a timer is
provided which will interrupt (not kill) the running threads and report a
failure.
|
Java Source File Name | Type | Comment |
AssertConstructor.java | Class | A set of assert methods that test a class for implementation of specific
constructor types. |
AssertConstructorUTest.java | Class | Tests the AssertConstructor class. |
AssertTestFactory.java | Class | A factory that creates test instances for the standard set of assert
methods. |
AssertTestFactoryUTest.java | Class | Tests the AssertTestFactory class. |
IntegrationTestCase.java | Class | A TestCase specific for Integration tests. |
IntegrationTestCaseUTest.java | Class | Tests the IntegrationTestCase class. |
InterruptEUTest.java | Class | Tests the behavior of the Thread.interrupt() and InterruptedException
in threaded and non-threaded environments. |
JUnitTestCaseEUTest.java | Class | Tests the functionality of the JUnit TestCase class for conformance to
expected behaviors. |
JUnitTestResultEUTest.java | Class | Tests the functionality of the JUnit TestResult class for conformance to
expected behaviors. |
JUnitTestSuiteEUTest.java | Class | Tests the functionality of the JUnit TestSuite class for conformance to
expected behaviors. |
MultiThreadedTestRunner.java | Class | A framework which allows for an array of tests to be
run asynchronously. |
MultiThreadedTestRunnerUTest.java | Class | Tests the MultiThreadedTestRunner class. |
SubTestTestCase.java | Class | A TestCase which enables tests to run a subset of tests from an active
test. |
SubTestTestCaseUTest.java | Class | Tests the SubTestTestCase class. |
SysPropertiesUtil.java | Class | Utility that allows for easy setting and reseting of System properties.
Some classes that need testing may depend upon a System property setting,
and this class will help testing that. |
SysPropertiesUtilUTest.java | Class | Tests the TestRunnable class. |
TestMonitorRunnable.java | Class | A helper class to more easily create monitors. |
TestMonitorRunnableUTest.java | Class | Tests the TestMonitorRunnable class. |
TestRunnable.java | Class | 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. |
TestRunnableUTest.java | Class | Tests the TestRunnable class. |