Package net.sourceforge.groboutils.junit.v1

The GroboUtils JUnit Extention: classes to help in the creation and execution of JUnit tests.

See:
          Description

Class Summary
AssertConstructor A set of assert methods that test a class for implementation of specific constructor types.
AssertTestFactory A factory that creates test instances for the standard set of assert methods.
AssertTestFactory.InnerTest Inner test instance which specializes in generating a message with the test's instance's specific name.
IntegrationTestCase A TestCase specific for Integration tests.
MultiThreadedTestRunner A framework which allows for an array of tests to be run asynchronously.
SubTestTestCase A TestCase which enables tests to run a subset of tests from an active test.
SysPropertiesUtil Utility that allows for easy setting and reseting of System properties.
TestMonitorRunnable A helper class to more easily create monitors.
TestRunnable Instances of this class only execute in the runTestRunnables method of the MultiThreadedTestRunner class.
 

Exception Summary
MultiThreadedTestRunner.TestDeathException An exception that declares that the test has been stop()ed.
 

Package net.sourceforge.groboutils.junit.v1 Description

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.



Copyright © 2001-2003 by The GroboUtils Project