Unit Test Frameworks
TestSuite |
Description
TestSuite (see Figure B-10) is a class representing a collection of Test s. Since it implements Test , it can be run just like a TestCase . When run, a TestSuite runs all the Test s it contains. It may contain both TestCase s and other TestSuite s.
A TestSuite can be constructed by giving it the class name of a TestCase . The TestSuite constructor uses reflection to find all methods in the TestCase having names starting with test . The code below adds all of BookTest 's test methods to a TestSuite and runs it:
TestSuite test = new TestSuite( BookTest.class ); test.run( new TestResult( ) );
Tests also can be added to a TestSuite using the addTest( ) method.
Figure B-10. The class TestSuite
Declaration
public class TestSuite extends Object implements Test
Constructors
-
- TestSuite( )
-
A constructor that creates an empty TestSuite .
-
- TestSuite(String name)
-
A constructor that creates an empty TestSuite with the given name.
-
- TestSuite(Class class)
-
A constructor that takes a Class , uses reflection to find all methods with names starting with test , and adds them to the TestSuite as test methods.
-
- TestSuite(Class class, String name)
-
A constructor that creates a TestSuite with the given name and all test methods found in the Class , as described for the previous constructor.
Public Methods
-
- void addTest(Test test)
-
Adds a Test to the TestSuite .
-
- void addTestSuite(Class testClass)
-
Adds the test methods from the Class to the TestSuite . Test methods are found using reflection.
-
- int countTestCases( )
-
Returns the total number of test cases that will be run by this TestSuite . Test cases are counted by recursively calling countTestCases( ) for every Test in this TestSuite .
-
- static Test createTest(Class theClass, String name)
-
Creates an instance of Class as a Test with the given name.
-
- String getName( )
-
Returns the name of the TestSuite .
-
- static java.lang.reflect.Constructor getTestConstructor(Class theClass)
-
Gets a constructor for the given Class that takes a single String as its argument, or gets a constructor that takes no arguments.
-
- void run(TestResult result)
-
Runs the Test s in this TestSuite and collects the results in TestResult .
-
- void runTest(Test test, TestResult result)
-
Runs Test and collects the results in TestResult .
-
- void setName(String name)
-
Sets the name of the TestSuite .
-
- Test testAt(int index)
-
Returns the Test at the given index.
-
- int testCount( )
-
Returns the number of Test s in this TestSuite .
-
- java.util.Enumeration tests( )
-
Returns the Test s as an Enumeration .
-
- String toString( )
-
Returns a string representation of this TestSuite .
Protected/Private Methods
-
- private void addTestMethod(java.lang.reflect.Method m, Vector names, Class class)
-
A private method to add a test method to this TestSuite .
-
- private static String exceptionToString(Throwable t)
-
Returns the Throwable 's stack trace as a string.
-
- private boolean isPublicTestMethod(java.lang.reflect.Method m)
-
Returns TRUE if Method has public access.
-
- private boolean isTestMethod(java.lang.reflect.Method m)
-
A private method that returns TRUE if Method has no arguments, returns void , and has public access.
-
- private static Test warning(String message)
-
Returns a Test that will fail and logs a warning message.
Attributes
-
- private String fName
-
The name of this TestSuite .
-
- private Vector fTests
-
The Test s contained by this TestSuite .