常言笑的家

          Spring, Hibernate, Struts, Ajax, RoR

          Eclipse快速上手指南 (2) 使用JUnit測試

          4. 在Eclipse中使用JUnit

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

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


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

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



          選中setUp()和tearDown(),然后點擊“Next”:



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

           

          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測試結果:



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

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



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

          posted on 2007-08-02 15:43 常言笑 閱讀(240) 評論(0)  編輯  收藏 所屬分類: 技術總結

          My Links

          Blog Stats

          常用鏈接

          留言簿(5)

          隨筆分類

          隨筆檔案

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 崇仁县| 东莞市| 仙居县| 报价| 揭阳市| 岚皋县| 南阳市| 武威市| 霸州市| 保德县| 宁蒗| 大城县| 新营市| 神池县| 湟中县| 宁远县| 富锦市| 和平区| 新源县| 慈利县| 佳木斯市| 南涧| 象州县| 张北县| 徐闻县| 东丽区| 池州市| 儋州市| 靖宇县| 惠东县| 堆龙德庆县| 呈贡县| 外汇| 高邑县| 漠河县| 海丰县| 远安县| 沂南县| 石台县| 大石桥市| 巢湖市|