Junit使用基础总结
2012-03-30 09:47
323 查看
典型的使用JUnit的方法就是继承TestCase类,然后重载它的一些重要方法:setUp()、teardown()、runTest()(这些都是可选的),TestCase通过setUp和tearDown来自动创建和销毁fixture。它会在运行每个测试之前调用setUp,并且在每个测试完成之后调用tearDown。TestCase类还实现了Assert类,该类中定义了8个核心方法。另外还有两个重要的接口:Test和TestListener。 1.Test, 包含两个方法:run() 和countTestCases(),它是对测试动作特征的提取。 2.TestListener, 包含四个方法:addError()、addFailure()、startTest()和endTest(),它是对测试结果的处理以及测试驱动过程的动作特征的提取。 所有的TestCase类都需要定义一个TestSuite,如果没有为TestCase定义一个TestSuite,TestRunner将主动为TestCase类定义一个TestSuite。如果没有,junit.swingui.TestRunner 将为TestCalculator创建一个缺省的TestSuite。该缺省的TestSuite将根据反射机制将TestCalculator中的所有以test***命名的测试都加入到该TestSuite中,随后TestRunner将调用run来执行该TestSuite中的所有TestCase。也可以自己定义TestSuite,在自定义的TestSuite中写入要测试的TestCase或者TestSuite。最后将这些客户对象组装到一个TestSuite对象中,交由 junit.textui.TestRunner.run (案例集) 驱动。
public class MathToolTest extends TestCase {//包含测试用例的类从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,则TestRunner会自己建立一个,然后这个 TestSuite会使用反射(reflection),从run中的.class文件中自动找出testXXX()方法然后运行。 public static void main(String[] args) { junit.textui.TestRunner.run(MathToolTest.class); } 如果您要自行生成TestSuite, 可以在继承TestCase类之后使用静态suite方法,在为这个类添加测试用例,这样的话就不是使用TestRunner自己建立的默认suite了,从而测试用例也就不必必须使用test开头了,因为这是不是使用反射机制去这个.class中去找testXXX测试用例来执行。(但是这种方法是不被推荐使用的)具体使用如下 public class MathToolTest extends TestCase { public MathToolTest(String testMethod) { super(testMethod); } public void testGcd() { assertEquals(5, MathTool.gcd(10, 5)); } public static Test suite() {//继承TestCase后使用suite方法构造自己的suite TestSuite suite = new TestSuite(MathTool.class);//这个suite中只有一个.class suite.addTest(new MathToolTest("testGcd")); //向这个suite中添加MathToolTest类中的 //testGcd测试用例 return suite; //返回这个suite } public static void main(String[] args) { junit.textui.TestRunner.run(MathToolTest.class);//这是执行上面生成的suite } } 还可以则在继承TestSuite之後,使用静态的(static)的suite()方法来整合多个.class文件为一个suite,因为每个.class都包含多个测试用例,因此被认为是一个suite(这种suite可以是自动映射,这个是推荐的方式;还可以是通过继承TestCase类之后使用suite方法在这个.class中手动添加生成的suite,如上面所示) public class TestAll extends TestSuite { //自己构造的suite类从TestSuite类中继承 public static Test suite() { //使用静态方法suite来构造自己的suite TestSuite suite = new TestSuite("TestSuite Test"); //命名自己的suite名称 suite.addTestSuite(TestCalcuator.class); suite.addTestSuite(TestCalcuator2.class); return suite; } public static void main(String args[]){ //junit.textui.TestRunner.run (suite()); junit.textui.TestRunner.run(TestAll.suite()); } } TestCase与TestSuite都实作了Test介面,其运行方式为 Command 模式 的一个实例,而TestSuite可以组合数个TestSuite或TestCase,这是 Composite 模式 的一个实例。
相关文章推荐
- RocketMQ基础概念及使用总结
- 使用spring配合Junit进行单元测试的总结
- 黑马程序员——C基础---圆括号的使用总结
- [基础总结]临时场景的使用
- Scala基础入门(十三 ) 类、函数参数形式、种类、使用方式总结
- Java基础学习总结(42)——Log4j 2使用教程
- Spring Test 整合 JUnit 4 使用总结
- JAVA开发的基础技能Junit的使用
- java 基础 泛型使用总结
- Spring Test 整合 JUnit 4 使用总结
- Spring Test 整合 JUnit 4 使用总结
- Spring Test 整合 JUnit 4 使用总结
- 使用jqMobi开发app基础:panel之间的跳转方式总结
- java 基础总结 -- enum 枚举的基础使用
- Spring Test 整合 JUnit 4 使用总结
- Spring Test 整合 JUnit 4 使用总结
- Java基础学习总结(120)——JVM 参数使用详细说明
- JUnit简单安装使用步骤总结
- 总结-Android基础篇1-shape的使用