}
/**
* Add test here,
* public void testxxx(){
* }
*/
public TestSkeleton(String name){
super(name);
}
/**
* Default suite method
*/
public static Test suite(){
return new TestSuite(TestSkeleton.class);
}
/**
* main method only be invoked from command line.
*
*/
public static void main (String[] args){
TestSuite suite = new TestSuite();
if (args.length!=0){
//Run specified test
for (int i=0;i<args.length;i++){
suite.addTest(new TestSkeleton(args));
}
}
else {
//discover all of them or use user defined suite
suite.addTest(TestSkeleton.suite());
}
junit.textui.TestRunner.run(suite);
}
}
上面这个模版用起来固然好,不过有个问题,就是复用性。假设我们都需要在setUp()下面作数据库联接。然后我们100个测试类都用这个模版。然后如果我们数据库的联接某天变了,那你就的在100个测试类里逐个的改去吧。 2. 可以写一个类专门来集合要测试的方法或者suite,然后可以指定来运行。
看下面一个小的范例:
import Example.ExampleHelloTest; //因为ExampleHelloTest在另外一个包里所以需要import进来
import junit.framework.*;
import pragmaticUnitTest.TestLargest;//因为TestLargest在另外一个包里所以需要import进来
public class TestSuiteComposite extends TestCase{
public TestSuiteComposite (String method){
super(method);
}
/**
*define composited testsuite
*/
static public Test suite(){
TestSuite suite = new TestSuite();
// add all the test methods from ExampleHelloTest class.
suite.addTestSuite(ExampleHelloTest.class);
// add test suite from TestLargest class.
suite.addTest(TestLargest.suite());
return suite;