• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    開源單元測試工具JUnit入門

    發布: 2009-4-01 11:32 | 作者: 不詳 | 來源: 測試時代采編 | 查看: 57次 | 進入軟件測試論壇討論

    領測軟件測試網

    好了,在DOS命令行里面輸入javac -classpath .;junit.jar TestSample.java 將測試類編譯通過。然后再輸入 java -classpath .;junit.jar junit.swingui.TestRunner TestSample 運行測試類,你會看到如下的窗口。



            上圖中,綠色說明單元測試通過,沒有錯誤產生;如果是紅色的,則就是說測試失敗了。這樣一個簡單的單元測試就完成了,是不是很容易?

            按照框架規定:編寫的所有測試類,必須繼承自junit.framework.TestCase類;里面的測試方法,命名應該以Test開頭,必須是public void 而且不能有參數;而且為了測試查錯方便,盡量一個TestXXX方法對一個功能單一的方法進行測試;使用assertEquals等junit.framework.TestCase中的斷言方法來判斷測試結果正確與否。

            你可以對比著上面測試類中的實現來體會下規定——很簡單!而且你在這個測試類中有加入多少個測試方法,就會運行多少個測試方法。

     

    四、向前一步

            學完了HelloWorld,你已經可以編寫標準的單元測試用例了。但是還有一些細節,這里還要說明一下。不要急,很快的!

            你在看上面的代碼的時候,是不是注意到每個TestXXX方法中都有一條SampleCalculator初始化語句?這很明顯不符合編碼規范。你可能正要將它提取出來放到構造函數里面去。且慢!在JUnit中的初始化是建議在Setup方法中作的。JUnit提供了一對方法,一個在運行測試方法前初始化一些必備條件而另一個就是測試完畢后去掉初始化的條件(見下圖)。



        另外你是否注意到,上面彈出窗口的一個細節,在綠條下面有Errors、Failures統計。這兩者有何區別呢?

        Failures作為單元測試所期望發生的錯誤,它預示你的代碼有bug,不過也可能是你的單元測試代碼有邏輯錯誤(注意是邏輯錯誤)。Errors不是你所期待的,發生了Error你可以按照下面的順序來檢查:

            檢查測試所需的環境,如:數據庫連接

            檢查單元測試代碼

            檢查你的系統代碼

     

    五、成批運行test case

        這是前面提到的JUnit特性之一。它方便于系統單元測試的成批運行。使用起來也是非常簡單,先看下使用代碼:

    import junit.framework.Test;

    import junit.framework.TestSuite;

    public class TestAll{

        public static Test suite(){

            TestSuite suite = new TestSuite("TestSuite Test");

            suite.addTestSuite( TestSample.class);

            return suite;

        }

    }

            這個測試程序的編譯、運行,和上面TestSample的方式是一樣的。

            javac -classpath .;junit.jar TestAll.java

            java -classpath .;junit.jar junit.swingui.TestRunner TestAll

        怎么樣?這樣你在suite方法里面添加幾個TestCase就會運行幾個,而且它也可以添加TestSuite來將小一點的集合加入大的集合中來,方便了對于不斷增加的TestCase的管理和維護。

        呵呵,你覺得suite方法的作用是不是于java應用程序的main很類似?并且這里的suite必須嚴格遵守上面的寫法!

     

    六、TestRunner

           在JUnit中已經給出了三種方式表示的TestRunner。你可以分別運行體驗下他們的不同。

           junit.swingui.TestRunner

           junit.awtui.TestRunner

           junit.textui.TestRunner

     

    七、總結

        本文輕松簡要的介紹了JUnit使用的入門知識。完全沒有涉及到深入的技巧和使用規范。而這些請關注我關于JUnit高級使用、JUnit源代碼分析的文章。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    22/2<12

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>