TestCase和TestSuite详解

1、TestCast和TestSuite概念介绍java

TestCase:字面意思,测试用例。为一个或多个方法提供测试方法,通常是一个test。
TestSuite:测试集合,即一组测试。一个test suite是把多个相关测试纳入一组的快捷方式。若是本身没有定义,Junit会自动提供一个test suite ,包括TestCase中的全部测试。
TestRunner:测试运行器。执行test suite的程序。设计模式

TestSuite和TestCase都是继承自Test接口,同时,TestSuite的创建和使用依赖于TestCase实例,这儿注意的是每次执行一个TestCase里头的方法,都会按照setUp()、runTest()、tearDown()执行顺序进行方法的执行。所以,若是有涉及全局的操做能够重写setUp()、tearDown()在这方法里头操做。
TestCase继承自Assert类,所以TestCase中能够直接使用Assert中的相关方法,Assert类提供了几个经常使用的判断方法,Assert的类图能够参照图:maven

2、程序实例工具

咱们新建一个maven工程,工程建好后会自带一个junit依赖,若是没有的话,引入junit依赖单元测试

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>

咱们建一个Caculator.java工具类,测试使用测试

public class Calculator {
    
    public int add(int a,int b){
        return a+b;
    }
    
    public int plus(int a,int b){
        return a-b;
    }
}

2.1 TestCase使用ui

使用说明: spa

1)访问权限都是public;
2)返回类型都是void;
3)没有参数;
4)方法名以“test”开头。

 编写一下TestCaseDemo.java测试类设计

public class TestCaseDemo extends TestCase{
    
    public void testAdd(){
        Calculator ca=new Calculator();
        assertEquals(14, ca.add(5, 9));
    }
    
    public void testPlus(){
        Calculator ca=new Calculator();
        assertEquals(14,ca.plus(5, 9));
    }    
    
}

测试结果以下:3d

testAdd测试经过,testPlus测试失败,修改成assertEquals(14,ca.plus(23, 9));测试经过

2.2TestSuit使用

使用注意事项:

1)必须以“suite”方法命名;
2)suite方法的访问修饰权限必须为static;
3)suite方法必须为静态方法;
4)suite方法必须没有参数。

用test suite测试所有的测试用例,或者是咱们想要测试的类,而不用一个一个执行,节省时间,编写一个TestSuitDemo.java测试类

public class TestSuitDemo{
    
    public static Test suite(){
        //建立TestSuite对象
        TestSuite testSuite=new TestSuite("All Test From TestCaseExample");
        //为TestSuite添加一个测试用例集合,参数为:ClasstestClass
        //经过参数能够知道,其实该参数就是TestCase的子类
        testSuite.addTestSuite(TestCaseDemo.class);
        //建立具体的测试用例
        Test test = TestSuite.createTest(TestCaseDemo.class, "testAdd");
        //添加一个具体的测试用例
        testSuite.addTest(test);
        return testSuite;
    }
}

测试结果如图:

经过上图看到执行了三个实例,若是想只执行一个实例,把如下代码注释便可:

 testSuite.addTestSuite(TestCaseDemo.class);

TestCase和TestSuite类是JUNIT中比较重要的两个类,TestCase和TestSuite能够认为是JAVA的合成设计模式在单元测试中的应用,其实即使咱们没有本身声明和建立TestSuite的子类,并且运行的TestCase子类的过程当中也会建立TestSuite类,并将要执行的TestCase子类的实例对象添加到TestSuite中去执行,其执行过程能够如图所示:

相关文章
相关标签/搜索