亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
了解JUnit核心類、接口及生命周期
作者:網絡轉載 發布時間:[ 2013/8/29 15:25:33 ] 推薦標簽:

Junit 從問世至今已有 12 年的歷史,期間功能不斷完善,用戶逐漸擴大,已經成為 Java 軟件開發中應用為廣泛的測試框架。本文著重介紹 JUnit 的核心接口、核心類以及 TestCase 的生命周期,以便讀者從架構層面掌握這個工具。

1997 年,Erich Gamma 和 Kent Beck 為 Java 語言創建了一個簡單但有效的單元測試框架,稱作 JUnit。JUnit 很快成為 Java 中開發單元測試的框架標準。世界上無數軟件項目使用它。本文將介紹 JUnit 的核心接口,核心類以及 JUnit 的生命周期。

JUnit 核心接口及核心類

了解 JUnit 的生命周期之前,先了解 JUnit 的核心接口和類是有必要的,這對于了解 TestCase 的生命周期有很大的幫助。

    Test:是 TestCase、TestSuite 的共同接口。run(TestResult result) 用來運行 Test,并且將結果保存到 TestResult。

    TestCase:Test 的接口的抽象實現,是 Abstract 類,所以不能實例化,能被繼承。其中一個構造函數 TestCase(String name),根據輸入的參數,創建一個測試實例。參數為該類的以 test 開頭的方法名,把它添加到 TestSuite 中,指定僅僅運行 TestCase 中的一個方法。

    TestSuite:實現 Test 接口。可以組裝一個或者多個 TestCase。待測試類中可能包括了對被測類的多個 TestCase,而 TestSuit 可以保存多個 TestCase,負責收集這些測試,這樣可以一個 Suite 能運行對被測類的多個測試。

    TestResult:保存 TestCase 運行中的事件。TestResult 有 List<TestFailure> fFailures 和 List<TestFailure> fErrors。fFailures 記錄 Test 運行中的 AssertionFailedError,而 fErrors 則記錄 Exception。Failure 是當期望值和斷言不匹配的時候拋出的異常,而 Error 則是不曾預料到的異常,如:ArrayIndexOutOfBoundsException。

    TestListener:是個接口,對事件監聽,可供 TestRunner 類使用。

    ResultPrinter:實現 TestListener 接口。在 TestCase 運行過程中,對所監聽的對象的事件以一定格式及時輸出,運行完后,對 TestResult 對象進行分析,輸出的統計結果。

    BaseTestRunner:所有 TestRunner 的超類。

    java Junit.swingui.TestRunner:實現 BaseTestRunner,提供圖形界面。從 4.0 版本起,沒有再提供這個類。這是 4.0 版本和之前版本的顯著變化之一。

    java Junit.textui.TestRunner:實現 BaseTestRunner,提供文本界面。下面將以它做為例子講解 JUnit 生命周期。

TestCase 實例

了解了前面的幾個類,下面將看一個例子:

Java代碼

    public class TestShoppingCart extends TestCase {  
        double unitPrice = 5;  
        int quantity = 6;  
        double discount=0.2;  
     
        @Before  
        public void setUp() throws Exception {  
            System.out.println(" Up ");  
        }  
     
        @After  
        public void tearDown() throws Exception {  
            System.out.println(" Down ");  
        }  
         
        public void testPay() {  
            double total = unitPrice * quantity;  
            assertEquals(30, total);  
        }  
         
        public void testPayWithDiscount() {  
            double total = unitPrice * quantity*(1-discount);  
            assertEquals(24.0, total);  
        } 
    } 

上一頁1234下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 亚洲国产情侣一区二区三区 | 成人欧美网站免费 | 日本国产一区二区三区 | 欧美亚洲国产成人综合在线 | 国产在线精品一区二区三区 | 亚洲免费大全 | 天天天色| a一级爱做片免费观看欧美 a一级爱做片免费 | 伦理片hd | 国产一区二区丁香婷婷 | 五月天婷婷色 | a级高清观看视频在线看 | 欧美在线中文字幕高清的 | 国产午夜毛片v一区二区三区 | 97在线免费视频 | 日本aⅴ永久免费网站www | 久草新在线观看 | 欧美les视频xxxx在线观看 | 国内精品久久久久久影院老狼 | 国产亚洲欧美一区二区 | 99国产精品久久久久久久成人热 | 网站免费满18成年在线观看 | 中国国产一级毛片视频 | 一区二区高清视频在线观看 | 欧美videosde极品另类 | 天堂网在线www资源网 | 日韩欧美亚洲综合久久影院d3 | 精品日韩在线 | 亚洲福利天堂网福利在线观看 | 精品一区视频 | 日韩 视频在线播放 | 免费国产成人高清在线观看视频 | 在线播放精品 | 国产免费又爽又黄又刺激的视频 | 日韩免费一区二区 | 性欧美高清另类videoso | 国产精品久久久久久久午夜片 | 91情国产l精品国产亚洲区 | 免费99精品国产自在现线观看 | 狠狠操狠狠摸 | 日本三级小视频 |