TestCase和TestSuite詳解


一、TestCast和TestSuite概念介紹

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工程,工程建好后會自帶一個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使用

使用說明: 

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));
    }    
    
}

測試結果如下:

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM