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中去執行,其執行過程能夠如圖所示:

相關文章
相關標籤/搜索