Class BulkTest
- java.lang.Object
-
- junit.framework.Assert
-
- junit.framework.TestCase
-
- org.apache.commons.collections.BulkTest
-
- All Implemented Interfaces:
java.lang.Cloneable
,junit.framework.Test
- Direct Known Subclasses:
AbstractTestObject
,AbstractTestSerialization
public class BulkTest extends junit.framework.TestCase implements java.lang.Cloneable
ATestCase
that can define both simple and bulk test methods.A simple test method is the type of test traditionally supplied by by
TestCase
. To define a simple test, create a public no-argument method whose name starts with "test". You can specify the the name of simple test in the constructor ofBulkTest
; a subsequent call toTestCase.run()
will run that simple test.A bulk test method, on the other hand, returns a new instance of
BulkTest
, which can itself define new simple and bulk test methods. By using themakeSuite(java.lang.Class)
method, you can automatically create a hierarchal suite of tests and child bulk tests.For instance, consider the following two classes:
public class TestSet extends BulkTest { private Set set; public TestSet(Set set) { this.set = set; } public void testContains() { boolean r = set.contains(set.iterator().next())); assertTrue("Set should contain first element, r); } public void testClear() { set.clear(); assertTrue("Set should be empty after clear", set.isEmpty()); } } public class TestHashMap extends BulkTest { private Map makeFullMap() { HashMap result = new HashMap(); result.put("1", "One"); result.put("2", "Two"); return result; } public void testClear() { Map map = makeFullMap(); map.clear(); assertTrue("Map empty after clear", map.isEmpty()); } public BulkTest bulkTestKeySet() { return new TestSet(makeFullMap().keySet()); } public BulkTest bulkTestEntrySet() { return new TestSet(makeFullMap().entrySet()); } }
In the above examples,TestSet
defines two simple test methods and no bulk test methods;TestHashMap
defines one simple test method and two bulk test methods. WhenmakeSuite(TestHashMap.class).run
is executed, five simple test methods will be run, in this order:- TestHashMap.testClear()
- TestHashMap.bulkTestKeySet().testContains();
- TestHashMap.bulkTestKeySet().testClear();
- TestHashMap.bulkTestEntrySet().testContains();
- TestHashMap.bulkTestEntrySet().testClear();
- TestHashMap
- testClear
- bulkTestKeySet
- testContains
- testClear
- bulkTestEntrySet
- testContains
- testClear
null
from the bulk test method. If you only want to override specific simple tests within a bulk test, use theignoredTests()
method.Note that if you want to use the bulk test methods, you must define your
suite()
method to usemakeSuite(java.lang.Class)
. The ordinaryTestSuite
constructor doesn't know how to interpret bulk test methods.
-
-
Constructor Summary
Constructors Constructor Description BulkTest(java.lang.String name)
Constructs a newBulkTest
instance that will run the specified simple test.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Object
clone()
Creates a clone of thisBulkTest
.java.lang.String[]
ignoredTests()
Returns an array of test names to ignore.static junit.framework.TestSuite
makeSuite(java.lang.Class c)
Returns aTestSuite
for testing all of the simple tests and all the bulk tests defined by the given class.java.lang.String
toString()
Returns the display name of thisBulkTest
.-
Methods inherited from class junit.framework.TestCase
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, countTestCases, createResult, fail, fail, failNotEquals, failNotSame, failSame, format, getName, run, run, runBare, runTest, setName, setUp, tearDown
-
-
-
-
Method Detail
-
clone
public java.lang.Object clone()
Creates a clone of thisBulkTest
.- Overrides:
clone
in classjava.lang.Object
- Returns:
- a clone of this
BulkTest
-
ignoredTests
public java.lang.String[] ignoredTests()
Returns an array of test names to ignore.If a test that's defined by this
BulkTest
or by one of its bulk test methods has a name that's in the returned array, then that simple test will not be executed.A test's name is formed by taking the class name of the root
BulkTest
, eliminating the package name, then appending the names of any bulk test methods that were invoked to get to the simple test, and then appending the simple test method name. The method names are delimited by periods:TestHashMap.bulkTestEntrySet.testClear
is the name of one of the simple tests defined in the sample classes described above. If the sampleTestHashMap
class included this method:public String[] ignoredTests() { return new String[] { "TestHashMap.bulkTestEntrySet.testClear" }; }
then the entry set's clear method wouldn't be tested, but the key set's clear method would.- Returns:
- an array of the names of tests to ignore, or null if no tests should be ignored
-
toString
public java.lang.String toString()
Returns the display name of thisBulkTest
.- Overrides:
toString
in classjunit.framework.TestCase
- Returns:
- the display name of this
BulkTest
-
makeSuite
public static junit.framework.TestSuite makeSuite(java.lang.Class c)
Returns aTestSuite
for testing all of the simple tests and all the bulk tests defined by the given class.The class is examined for simple and bulk test methods; any child bulk tests are also examined recursively; and the results are stored in a hierarchal
TestSuite
.The given class must be a subclass of
BulkTest
and must not be abstract.- Parameters:
c
- the class to examine for simple and bulk tests- Returns:
- a
TestSuite
containing all the simple and bulk tests defined by that class
-
-