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

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

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

    posts - 22, comments - 17, trackbacks - 0, articles - 15
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    Junit

    Posted on 2006-12-02 16:23 碼農cz 閱讀(234) 評論(0)  編輯  收藏 所屬分類: OtherJava

    JUnit是一個OpenSource的軟件。
    下載junit.jar。將這個jar文件加入你的CLASSPATH系統變量(獲IDE CLASSPATH路徑)就OK了。
    編寫測試類的基本步驟:
    1> 擴展TestCase類;
    2> 覆蓋runTest()方法(可選);
    3> 寫一些testXXXXX()方法;
    如果你要對一個或若干個的類執行多個測試,該怎么辦?JUnit對此有特殊的解決辦法。
    如果需要在一個或若干個的類執行多個測試,這些類就成為了測試的context。
    在JUnit中被稱為Fixture。

    protected void setUp() throws java.lang.Exception
    覆蓋setUp()方法,初始化所有測試的Fixture
    protected void tearDown() throws java.lang.Exception
    覆蓋tearDown() 釋放你在setUp()中分配的永久性資源,
    當JUnit執行測試時,它在執行每個testXXXXX()方法前都調用setUp(),而在執行每個testXXXXX()方法后都調用tearDown()方法,由此保證了測試不會相互影響。

    JUnit提供了三種界面來運行測試
    [Text UI] junit.textui.TestRunner
    [AWT UI] junit.awtui.TestRunner
    [Swing UI] junit.swingui.TestRunner

    界面很簡單,鍵入類名-testClass。或在啟動UI的時候鍵入類名:
    c:>java junit.swingui.TestRunner testClass

    下面是一些具體的編寫測試代碼的技巧或較好的實踐方法:?

    1. 不要用TestCase的構造函數初始化Fixture,而要用setUp()和tearDown()方法。?

    2. 不要依賴或假定測試運行的順序,因為JUnit利用Vector保存測試方法。所以不同的平臺會按不同的順序從Vector中取出測試方法。?

    3. 避免編寫有副作用的TestCase。例如:如果隨后的測試依賴于某些特定的交易數據,就不要提交交易數據。簡單的會滾就可以了。?

    4. 當繼承一個測試類時,記得調用父類的setUp()和tearDown()方法。?

    5. 將測試代碼和工作代碼放在一起,一邊同步編譯和更新。(使用Ant中有支持junit的task.)?

    6. 測試類和測試方法應該有一致的命名方案。如在工作類名前加上test從而形成測試類名。?

    7. 確保測試與時間無關,不要依賴使用過期的數據進行測試。導致在隨后的維護過程中很難重現測試。?

    8. 如果你編寫的軟件面向國際市場,編寫測試時要考慮國際化的因素。不要僅用母語的Locale進行測試。?

    9. 盡可能地利用JUnit提供地assert/fail方法以及異常處理的方法,可以使代碼更為簡潔。
    ?
    10.測試要盡可能地小,執行速度快。
    ---------------------------------------------------
    ??? JUnit是單元測試工具,我的理解是用來測試單個模塊功能的工具,非常適合測試比較獨立的模塊。
    ??? 測試的用途是用來檢查錯誤,我認為這個工具并不只是幫助編程時查錯。對于傳統的編程方式,一般都設計好了各個模塊,通常模塊測試一次就可以了,但是目前設計總是因為功能不斷的增加和修改而改變,如果多次這樣,程序的質量和bug修正將是一個繁重困難的工作。JUnit在這種情況下,可以大大的提高工作效率,只要在第一次寫代碼的時候額外編寫測試代碼,以后所有的修改都可以實現自動的測試。
    ??? 同時因為自動測試的實現,XP編程方法才有了實現的可能。通過先寫好測試代碼,另一個角度看也就是我們要實現的功能,然后寫一個最簡單的使測試通過的代碼,再進行一個循環:改進-測試-通過-改進,直到代碼滿意,即使不太滿意但寫出的代碼也是可運行的。


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 久久精品国产亚洲77777| 小说专区亚洲春色校园| 亚洲日本国产精华液| 亚洲成a人片在线观看天堂无码 | 免费观看的毛片大全| 亚洲第一页综合图片自拍| 久久精品国产亚洲77777| 99免费在线观看视频| 亚洲国产精品专区在线观看| 久久亚洲AV成人无码国产电影| 91精品导航在线网址免费| 亚洲?V无码成人精品区日韩| 亚洲成人免费电影| 国产v精品成人免费视频400条| 亚洲中文字幕不卡无码| 色噜噜噜噜亚洲第一| 国产国产人免费人成免费视频 | 色窝窝亚洲AV网在线观看| 国产成人免费永久播放视频平台| 春暖花开亚洲性无区一区二区 | 亚洲A∨无码无在线观看| 免费人成在线观看播放a| 成年人在线免费观看| 亚洲综合色一区二区三区小说| a毛片免费全部播放完整成| 亚洲M码 欧洲S码SSS222| 久久成人永久免费播放| 亚洲精品国精品久久99热| 人人狠狠综合久久亚洲| 亚洲精品一级无码鲁丝片| 日韩中文字幕免费视频| 亚洲第一男人天堂| 日本在线高清免费爱做网站| 亚洲国产无线乱码在线观看 | 在线观看免费亚洲| 91免费国产自产地址入| 亚洲a在线视频视频| 无码人妻精品一二三区免费| 日韩在线观看视频免费| 亚洲国产精品人人做人人爽| 国产va在线观看免费|