JUnit in java 真正的測試用例實戰

單元測試基礎
         當今軟件測試十分盛行時,本人通過項目實踐和個人親身體會淺談單元測試,本人一直堅持 用代碼說話的原則 ,同時也希望個人能給出寶貴意見,共同探討、共同進步,爲中國軟件事業有更大的發展共同奮鬥!
最早我們項目組開發的項目時,寫代碼都是從底層一直寫到表現層到 jsp ,然後開發人員在 web 層調試頁面,近乎 98 %都會報一大堆 exception, 然後再在代碼中加斷點一步一步查到底哪一層代碼出現問題 ……, 比較好點做法就是在各個類中加上 main 方法測試,但總體很不理想,給 web 層開發人員的調試和質量控制人員帶來繁重的工作壓力;使用單元測試後,針對每一個方法都做嚴格的把關,大大減少調試的時間;同時質量控制人員返回過來的 bug 少了近 60 %,現在對於開發人員寫測試用例非常熟練,並且本人根據實際情況對測試用例做了點小小改動(這部分主要在後面代碼中詳述),帶來很好的效果!
單元測試到底給實際開發帶來什麼好處那?
1            (1) 首先對於開發人員來說大大減少調試工作的時間,同時也規範了對於代碼安全管理(我們知道那些方法是可以調用的);
2            (2) 對於整個項目來說,有了完整的測試,保證項目最後交付測試有了可靠依據;
3            (3) 對於測試人員大大減少 bug 的反饋;
4            (4) 對於項目經理整個項目達到很好的可控;
5           (5) 最主要的完整的單元測試給後期維護人員帶來很大的便捷!
單元測試好處可能還有很多,但本人只能理解和感悟這麼多 , 希望觀者補充!
單元測試配置:
       我將使用 eclipse myEclopse 給大家介紹關於 JUNIT 的環境的簡單配置;右鍵點擊項目選擇 屬性 ,在彈出窗口中到環境變量中添加 junit.jar 包,這樣下一步我們就可以進行單元測試了;
使用 eclipse 快速開發 test Case
如下圖:右鍵選擇你要測試的類,在新建中點擊 “JUnit 測試用例
彈出對話框,配置測試名稱和根目錄,添加註釋等,再點擊 下一步 到下圖:
      選擇你要測試類中的方法,點擊完成!便生成測試類的基本框架,如下代碼,我們以對一個 DAO 類測試爲例:
/**/ /*
 * Copyright reserved 2005 by XXXXCo. Ltd.
 * Author
Fu wei    Date 2006-9-4
 */



import  junit.framework.TestCase;

/** */ /**
 * 
@author  Fu wei
 */

public  class  OrgTypeDAOTest  extends  TestCase  ... {
    
/** */ /**
     * 
@param  arg0
     */

    
public  OrgTypeDAOTest(String arg0)  ... {
        
super (arg0);
    }

    
/**/ /* 
     * @see junit.framework.TestCase#setUp()
     */

    
protected  void  setUp()  throws  Exception  ... {
        
super .setUp();
    }

    
/**/ /* 
     * @see junit.framework.TestCase#tearDown()
     */

    
protected  void  tearDown()  throws  Exception  ... {
        
super .tearDown();
    }
    
/** */ /**
     *  
主函數
     * 
@param  args
     */

    
public  static  void  main(String[] args) ... {
        TestRunner.run(OrgTypeDAOTest .
class );
    }
    
/** */ /**
     * {
@link  OrgTypeDAO#getOrgTypeList()}  的測試方法。
     */

    
public  final  void  testGetOrgTypeList()  ... {
        fail("
尚未實現 ");  // TODO
    }

    
/** */ /**
     * {
@link  OrgTypeDAO#insertOrgTypeInfo(com.zhjy.mltx.vo.OrgTypeVO)}  的測試方法。
     */

    
public  final  void  testInsertOrgTypeInfo()  ... {
        fail("
尚未實現 ");  // TODO
    }

    
/** */ /**
     * {
@link  OrgTypeDAO#deleteOrgTypeInfo(java.lang.String)}  的測試方法。
     */

    
public  final  void  testDeleteOrgTypeInfo()  ... {
        fail("
尚未實現 ");  // TODO
    }

    
/** */ /**
     * {
@link  OrgTypeDAO#updateOrgTypeInfo(com.zhjy.mltx.vo.OrgTypeVO)}  的測試方法。
     */

    
public  final  void  testUpdateOrgTypeInfo()  ... {
        fail("
尚未實現 ");  // TODO
    }

    
/** */ /**
     * {
@link  OrgTypeDAO#getOrgTypeInfoById(java.lang.String)}  的測試方法。
     */

    
public  final  void  testGetOrgTypeInfoById()  ... {
        fail("
尚未實現 ");  // TODO
    }

    
/** */ /**
     * {
@link  OrgTypeDAO#isRepeatOrgTypeInfo(java.lang.String)}  的測試方法。
     */

    
public  final  void  testIsRepeatOrgTypeInfoString()  ... {
        fail("
尚未實現 ");  // TODO
    }

    
/** */ /**
     * {
@link  OrgTypeDAO#isRepeatOrgTypeInfo(com.zhjy.mltx.vo.OrgTypeVO)}  的測試方法。
     */

    
public  final  void  testIsRepeatOrgTypeInfoOrgTypeVO()  ... {
        fail("
尚未實現 ");  // TODO
    }

    
/** */ /**
     * {
@link  OrgTypeDAO#getFlatOrgIdByName(java.lang.String)}  的測試方法。
     */

    
public  final  void  testGetFlatOrgIdByName()  ... {
        fail("
尚未實現 ");  // TODO
    }
}
 
 JUnit 單元測試一共要注意一下幾點:
1 import junit.framework.TestCase junit.textui.TestRunner
2 )繼承 junit.framework.TestCase
3 )自行添加一個 main 方法      中調用 TestRunner.run( 測試類名 .class);
4 )有一個調用 super(String) 的構造函數;
        以上都是 JUnit 必有的特徵,除以上外,我們發現有許多以 test 開頭的方法,而這些方法正是我們要測試的方法, Junti 測試其實採用的是斷言的方式,只要我們在所有 test 開頭中的方法對數據添加斷言方法,同時提供很多斷言的方法,

 

常用斷言方法
assertEquals(" 失敗提示信息 "," 期望數據 "," 測試數據 ")
斷言獲取數據是否與所期望的相等
assertNotNull(" 失敗提示信息 "," 測試數據 ")
斷言獲取數據不爲 null ,否則提示錯誤
assertNull(" 失敗提示信息 "," 測試數據 ")
斷言獲取數據是爲 null ,否則提示錯誤
assertTrue(" 失敗提示信息 ", 測試數據 blooean )
斷言獲取數據是否爲 ture ,否則提示錯誤
fail(" 失敗提示信息 ");
此方法一般放到異常處,遇到此方法,測試將停止 !
assertSame(" 失敗提示信息 "," 期望數據 "," 測試數據 ")
斷言獲取數據是否與所期望的相同
當我們寫完所有方法策略後, JUnit 測試如下圖:
在方法頁面中點擊右鍵在 調試方式 運行方式 中點擊 JUnit 測試 ,就運行測試類!
在執行測試類時,執行的大概過程
1 )先執行構造方法 public OrgTypeDAOTest(String arg0)
2 )再執行初始化數據方法 protected void setUp()
3 )再執行以 test 開頭的測試方法;
4 )最後執行 protected void tearDown() 方法清理對象;
如果測試失敗或者錯誤,將會顯示一個紅色的亮條;如果測試通過將顯示綠色亮條;如下圖
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章