项目中遇到这样问题,代码如下:
public class AllSuites {
public static Test suite() {
TestSuite suite = new TestSuite("All tests");
suite.addTestSuite(a.class);
suite.addTestSuite(b.class);
return suite;
}
}a.java:
...
public class a extends TestCase {
public void testA(){
...
}
}
AllSuites中用静态方法把a加入到suite中,运行正常,
但是现在需求要把a先加入一个suite中,然后再把这个suite加入到AllSuites中,我该怎么实现,也就是说我想在Allsuites中的suite()中加个suite(而不是TestCase)该怎么写?
public class AllSuites {
public static Test suite() {
TestSuite suite = new TestSuite("All tests");
suite.addTestSuite(a.class);
suite.addTestSuite(b.class);
return suite;
}
}a.java:
...
public class a extends TestCase {
public void testA(){
...
}
}
AllSuites中用静态方法把a加入到suite中,运行正常,
但是现在需求要把a先加入一个suite中,然后再把这个suite加入到AllSuites中,我该怎么实现,也就是说我想在Allsuites中的suite()中加个suite(而不是TestCase)该怎么写?
使得类TestCase通过适配层来和类TestSuite兼容。
比如定义一个新的适配层接口IAdapter,然后将TestSuite中的方法进行抽象(即将所有用到的方法全部放到接口中)。然后再将TestCase去实现IAdapter。
Over!
public static Test suite() {
TestSuite suite = new TestSuite("A testsuit");
suite.addTestSuite(a.class);
suite.addTestSuite(b.class); TestSuite result = new TestSuite("All tests");
result.addTest(suite);//Notice here
return suite;
}
1. All test case should be following naming rule: <TestedClassName>Test
2. All test case should be integrated to test framework through TestSuites(JUnitTestSuite). The naming of test suites should like <PackageName>TestSuite. And all test suites should be included in a super suite named AllSuites.
就是说先写testCase,然后把testCase加到<PackageName>TestSuite中,最后再把all test suites加到AllSuites中,
我原来的a.java和b.java是testCase,我直接加到AllSuites中立,但是现在需求是要经过中间的<PackageName>TestSuite,我不清楚该怎么加?谢谢各位哥哥
public static Test suite() {
TestSuite packageNameA= new TestSuite("A testsuit");
packageNameA.addTestSuite(a.class);
packageNameA.addTestSuite(b.class);
TestSuite packageNameB= new TestSuite("B testsuit");
.......
TestSuite allSuites= new TestSuite("All tests");
result.addTest(packageNameA);
result.addTest(packageNameB);
....
return allSuites;
}
public class a extends TestCase {
public void testA(){
...
}
}
=>
public class packageNameA extends TestCase {
public void testA(){
...
}
}
然后再加到AllSuites里,运行packageNameA就像运行AllSuites一样