Methods Summary |
---|
public void | addTest(junit.framework.Test test)Adds a test to the suite.
fTests.addElement(test);
|
private void | addTestMethod(java.lang.reflect.Method m, java.util.Vector names, java.lang.Class theClass)
String name= m.getName();
if (names.contains(name))
return;
if (! isPublicTestMethod(m)) {
if (isTestMethod(m))
addTest(warning("Test method isn't public: "+m.getName()));
return;
}
names.addElement(name);
addTest(createTest(theClass, name));
|
public void | addTestSuite(java.lang.Class testClass)Adds the tests from the given class to the suite
addTest(new TestSuite(testClass));
|
public int | countTestCases()Counts the number of test cases that will be run by this test.
int count= 0;
for (Enumeration e= tests(); e.hasMoreElements(); ) {
Test test= (Test)e.nextElement();
count= count + test.countTestCases();
}
return count;
|
public static junit.framework.Test | createTest(java.lang.Class theClass, java.lang.String name)...as the moon sets over the early morning Merlin, Oregon
mountains, our intrepid adventurers type...
Constructor constructor;
try {
constructor= getTestConstructor(theClass);
} catch (NoSuchMethodException e) {
return warning("Class "+theClass.getName()+" has no public constructor TestCase(String name) or TestCase()");
}
Object test;
try {
if (constructor.getParameterTypes().length == 0) {
test= constructor.newInstance(new Object[0]);
if (test instanceof TestCase)
((TestCase) test).setName(name);
} else {
test= constructor.newInstance(new Object[]{name});
}
} catch (InstantiationException e) {
return(warning("Cannot instantiate test case: "+name+" ("+exceptionToString(e)+")"));
} catch (InvocationTargetException e) {
return(warning("Exception in constructor: "+name+" ("+exceptionToString(e.getTargetException())+")"));
} catch (IllegalAccessException e) {
return(warning("Cannot access test case: "+name+" ("+exceptionToString(e)+")"));
}
return (Test) test;
|
private static java.lang.String | exceptionToString(java.lang.Throwable t)Converts the stack trace into a string
StringWriter stringWriter= new StringWriter();
PrintWriter writer= new PrintWriter(stringWriter);
t.printStackTrace(writer);
return stringWriter.toString();
|
public java.lang.String | getName()Returns the name of the suite. Not all
test suites have a name and this method
can return null.
return fName;
|
public static java.lang.reflect.Constructor | getTestConstructor(java.lang.Class theClass)Gets a constructor which takes a single String as
its argument or a no arg constructor.
Class[] args= { String.class };
try {
return theClass.getConstructor(args);
} catch (NoSuchMethodException e) {
// fall through
}
return theClass.getConstructor(new Class[0]);
|
private boolean | isPublicTestMethod(java.lang.reflect.Method m)
return isTestMethod(m) && Modifier.isPublic(m.getModifiers());
|
private boolean | isTestMethod(java.lang.reflect.Method m)
String name= m.getName();
Class[] parameters= m.getParameterTypes();
Class returnType= m.getReturnType();
return parameters.length == 0 && name.startsWith("test") && returnType.equals(Void.TYPE);
|
public void | run(junit.framework.TestResult result)Runs the tests and collects their result in a TestResult.
for (Enumeration e= tests(); e.hasMoreElements(); ) {
if (result.shouldStop() )
break;
Test test= (Test)e.nextElement();
runTest(test, result);
}
|
public void | runTest(junit.framework.Test test, junit.framework.TestResult result)
test.run(result);
|
public void | setName(java.lang.String name)Sets the name of the suite.
fName= name;
|
public junit.framework.Test | testAt(int index)Returns the test at the given index
return (Test)fTests.elementAt(index);
|
public int | testCount()Returns the number of tests in this suite
return fTests.size();
|
public java.util.Enumeration | tests()Returns the tests as an enumeration
return fTests.elements();
|
public java.lang.String | toString()
if (getName() != null)
return getName();
return super.toString();
|
private static junit.framework.Test | warning(java.lang.String message)Returns a test which will fail and log a warning message.
return new TestCase("warning") {
protected void runTest() {
fail(message);
}
};
|