您定义自己的TestCase,并使用TestRunner来运行测试,事实上TestRunner并不直接运行 TestCase上的单元方法,而是透过TestSuite,TestSuite可以将数个TestCase在一起,而让每个TestCase保持简单。
来看看一个例子:
package onlyfun.caterpillar.test;
import onlyfun.caterpillar.MathTool;
import junit.framework.TestCase;
public class MathToolTest extends TestCase {
public MathToolTest(String testMethod) {
super(testMethod);
}
public void testGcd() {
assertEquals(5, MathTool.gcd(10, 5));
}
public static void main(String[] args) {
junit.textui.TestRunner.run(MathToolTest.class);
}
}
在这个例子中,您并没有看到任何的TestSuite,事实上,如果您没有提供任何的TestSuite,TestRunner会自己建立一个,然後这个 TestSuite会使用反射(reflection)自动找出testXXX()方法。
如果您要自行生成TestSuite,则在继承TestCase之後,提供静态的(static)的suite()方法,例如:
public static Test suite() {
return new TestSuite(MathTool.class);
}
如果您没有提供任何的TestSuite,则TestRunner就会像上面这样自动为您建立一个,并找出testXXX()方法,您也可以如下面定义 suite()方法:
public static Test suite() {
TestSuite suite = new TestSuite(MathTool.class);
suite.addTest(new MathToolTest("testGcd"));
return suite;
}
JUnit并没有规定您一定要使用testXXX()这样的方式来命名您的测试方法,如果您要提供自己的方法(当然JUnit 鼓励您使用testXXX()这样的方法名称),则可以如上撰写,为了要能够使用建构函式提供测试方法名称,您的TestCase必须提供如下的建构函 式:
public MathToolTest(String testMethod) {
super(testMethod);
}
如果要加入更多的测试方法,使用addTest()就可以了,suite()方法传回一个TestSuite物件,它与 TestCase都实作了Test介面,TestRunner会调用TestSuite上的run()方法,然後TestSuite会将之委托给 TestCase上的run()方法,并执行每一个testXXX()方法。
除了组合TestCase之外,您还可以将数个TestSuite组合在一起,例如:
public static Test suite() {
TestSuite suite= new TestSuite();
suite.addTestSuite(TestCase1.class);
suite.addTestSuite(TestCase2.class);
return suite;
}
如此之来,您可以一次运行所有的测试,而不必个别的运行每一个测试案例,您可以写一个运行全部测试的主测试,而在使用TestRunner时呼叫 suite()方法,例如:
junit.textui.TestRunner.run(TestAll.suite());
TestCase与TestSuite都实作了Test介面,其运行方式为 Command 模式 的一个实例,而TestSuite可以组合数个TestSuite或TestCase,这是 Composite 模式 的一个实例。
分享到:
相关推荐
61850 Test Suite V3.rar
TV Compatibility Test Suite
skyeye-testsuite-1.2.5.tar.bz2
junit eclipse testcast Testsuite 源码 和文档
软件测试工具e-test suite入门使用说明
The NIST Statistical Test Suite ( Revised by Larry Bassham, March 2008), 用于测试序列的随机性. 从NIST上下载的源代码,稍微修改了一下,附带一个已经编译好的32位Exe程序。主要修改如下:1)增加了大量的帮助...
CTS 全称Compatibility Test Suite兼容性测试工具。当电子产品开发出来,并定制了自己的Android系统后,必须要通过最新的CTS检测,以保证标准的android application能运行在该平台下。通过了CTS验证,需要将测试报告...
Android Camera Imaging Test Suite / CTS Verifier Document version: 1.9 Document date: 31st May, 2016 The ITS is a framework for running tests on the images produced by an Android camera.
mysql-testsuite_5.7.34-1ubuntu18.04_i386.deb
测试套件TestSuite生成测试报告,编写测试用例,生成测试报告,需要用到 HTMLTestRunner.py文件
Open POSIX 测试套件是 POSIX 2001 API 的测试套件,与特定实现无关。 它提供一致性、功能和压力测试。 最初的重点是线程、时钟和定时器、信号、消息队列和信号量。
gcc最新版的testsuite,2008年8月27日出版!!!!
systemtap script examples , cross compile from x86 to arm.
用于测试skyeye以及linux和ucos等操作系统,包含网络芯片等许多
GCC编译器测试套件4.2.2
Phoronix Test Suite 6.8 p 云主机CPU性能测试工具
1394测试规范
安装和配置下载“TestSuite”文件夹并将其放在您喜欢的任何目录中。 进入TestSuite文件夹并打开文件CFUnitTestConfig.php 。 将$TestFolder路径更改为单元测试所在的文件夹。 注意: $TestFolder路径将从TestSuite...
MySQL Community Server 8.0.20 Windows (x86, 64-bit), ZIP Archive Debug Binaries & Test Suite 可供开发学习使用