<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    在 Eclipse中使用JUnit實例

    測試對于保證軟件開發質量有著非常重要的作用,單元測試更是必不可少,JUnit是一個非常強 大的單元測試包,可以對一個/多個類的單個/多個方法測試,還可以將不同的TestCase組合成TestSuit,使測試 任務自動化。Eclipse同樣集成了JUnit,可以非常方便地編寫TestCase

      我們創 建一個Java工程,添加一個example.Hello類,首先我們給Hello類添加一個abs()方法,作用是返 回絕對值:

    Image
    (圖一)
      下一 步,我們準備對這個方法進行測試,確保功能正常。選中Hello.java,右 鍵點擊,選擇New->JUnit Test Case
    Image

    (圖二)
       Eclipse會詢問是否添加junit.jar包,確定后新建一個HelloTest類,用來測試Hello類。
    Image

    (圖三)
      選中setUp()tearDown(),然后點擊“Next”
    Image

    (圖 四)  
      選擇要 測試的方法,我們選中abs(int)方法,完成后在HelloTest.java中輸入:
    Image


    (圖五)

       JUnit會以以下順序執行測試:(大致的代碼

    try {
    HelloTest test = new HelloTest(); //
    建立測試類實例
    test.setUp(); //
    初始化測試環境
    test.
    testAbs(); // 測試某個方法
    test.tearDown(); //
    清理資源
    }
    catch…


      setUp()是建立測試環境,這里創建一個Hello類的實例;tearDown()用于清理資源,如釋放打開的文件等等。以test開頭的方法被認為是測試方法,JUnit會依次執行testXxx()方法。在testAbs()方法中,我們對abs()的測試分別選擇 正數,負數和0,如果方法返回值與期待結果相同,則assertEquals不會產生異常。

      如果有 多個testXxx方法,JUnit會創建多個XxxTest實例,每次 運行一個testXxx方法,setUp()tearDown()會在testXxx前后被調用,因此,不要在一個testA()中依賴testB()

      直接運 行Run->Run As->JUnit Test,就可 以看到JUnit測試結果:
    Image

    (圖六)
      綠色表 示測試通過,只要有1個測試未通過,就會顯示紅色并列出未通過測試的方法。可以試圖改變abs()的代碼,故意返回錯誤的結果(比如return n+1;),然后再運行JUnit就會報告錯誤。

      如果沒 有JUnit面板,選擇Window->Show View->Other,打開JUnitView
    Image

    (圖七)
      JUnit通過單元測試,能在開發階段就找出許多Bug,并且,多個Test Case可以組合成Test Suite,讓 整個測試自動完成,尤其適合于XP方法。每增加一個小的新功能或者對代碼進行了小的修改,就立刻運行一 遍Test Suite,確保新增和修改的代碼不會破壞原有的功能,大大增強軟件的可維護 性,避免代碼逐漸腐爛

                                                                                                                                                                                                                                                            

    初次學會使用Junit的使用是通過這篇文章的(上文),自己嘗試跟著做了一遍,結果發現它上面提供的代碼例子是錯誤 的,不過流程、圖片都很清楚。所以你可以先看看它上面是怎么說的,至于測試的代碼我稍做了改動,為的是只要說明問題就行——其實不難。
    被測試的類代碼:
    public class HelloJunit {
        public static int abs(int n){
            return n>=0?n:(-n);
        }
    }
    Junit
    的測試代碼:
    import junit.framework.TestCase;
    public class HelloJunitTest extends TestCase {
        public void testAbs() {
          assertEquals(HelloJunit.abs(10),10); 
          assertEquals(HelloJunit.abs(-10),10);
        }
    }
    主要代碼 行為assertEquals(HelloJunit.abs(10),10); 
    其中參數 的意義為:
    HelloJunit.abs(10)執行類HelloJunitabs方法(參數為10,表示求10的絕對值)。
    逗號后面 的10表示為預期的結果(期望值)。
    該行表示 將期望值(10)與實際值(類HelloJunitabs方法執行結果)進行比較,如果不相 等則拋出異常。
    這里只是 一個簡簡單單的例子,Junit被大家稱為優秀的白盒自動化測試框架,當然只有自己用過了才會了解。網上有許多的資料介紹這個框架,筆 者也是從自身情況出發來學習它的。當然學習使用它是需要有一定基礎的,筆者擁有CC++的基礎,對Java的學習也開始不久,所以在這里將力 所能及的知識共享出來與大家分享,希望能夠共同提高。另外筆者是專職的測試人員,所以在描述一些問題時大多都會以測試的角度來闡述。學習此框架的目的在于 能夠在工作中進行白盒測試,在以后的介紹中還會介紹白盒測試相關的理論和工具,希望大家能夠一起提高進步。

    posted on 2010-07-20 09:40 smallfa 閱讀(1121) 評論(0)  編輯  收藏 所屬分類: myeclipse

    <2010年7月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導航

    統計

    公告

    smallfa
    博客園
    C++博客
    博客生活
    Blogjava
    足球博客
    微博
    Redsaga

    常用鏈接

    留言簿(2)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    相冊

    Ajax

    Blogs

    DB

    java

    Open source

    ORM

    Tools/Help

    vedio Tech

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲AV无码无限在线观看不卡 | 亚洲国产视频一区| 亚洲精品在线视频| 日韩亚洲人成网站| 亚洲码在线中文在线观看| 国产一卡2卡3卡4卡2021免费观看| 2022免费国产精品福利在线| 亚洲国产精品无码专区在线观看| 亚洲Aⅴ无码一区二区二三区软件| 性色av免费观看| 男女免费观看在线爽爽爽视频| 日本免费大黄在线观看| 亚洲AV无码成人精品区狼人影院 | 久久久久久99av无码免费网站| 国产好大好硬好爽免费不卡| 亚洲免费福利在线视频| 亚洲美女激情视频| 97se亚洲综合在线| 无码欧精品亚洲日韩一区| 国产亚洲综合一区柠檬导航| 24小时日本在线www免费的| 永久免费在线观看视频| 日韩精品无码一区二区三区免费| 成人性做爰aaa片免费看| 91国内免费在线视频| 丝袜捆绑调教视频免费区| 中文字幕乱理片免费完整的| 成在线人视频免费视频| 中文字字幕在线高清免费电影| 国产免费播放一区二区| 亚洲AV无码一区二区三区牛牛| 亚洲一区二区三区免费视频| 国产99在线|亚洲| 亚洲av无码无在线观看红杏| 亚洲国产成人精品无码区在线观看| 亚洲精品二区国产综合野狼| 亚洲爆乳精品无码一区二区三区| 亚洲成av人影院| 7777久久亚洲中文字幕蜜桃| 久久亚洲春色中文字幕久久久 | av无码免费一区二区三区|