亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
Junit概述
作者:網絡轉載 發布時間:[ 2012/11/29 15:05:46 ] 推薦標簽:
 

4、測試代碼的運行
  先說常用的集成模式。
  測試代碼寫好以后,可以相應的類中寫main方法,用java命令直接運行;也可以不寫main方法,用Junit提供的運行器運行。Junit提供了textui,awtui和swingui三種運行器。
  以前面第2步中的AllTests運行為例,可有四種:

java junit.textui.TestRunner junit.samples.AllTests
java junit.awtui.TestRunner junit.samples.AllTests
java junit.swingui.TestRunner junit.samples.AllTests
java junit.samples.AllTests

  main方法中一般也都是簡單地用Runner調用suite(),當沒有main時,TestRunner自己以運行的類為參數生成了一個TestSuite.
  
  對于命令模式的運行,有兩種方法。

靜態方法

TestCase test= new MoneyTest("simple add") {
public void runTest() {
testSimpleAdd();
}
};


動態方法

TestCase test= new MoneyTest("testSimpleAdd");

  我試了一下,好象有問題,哪位朋友成功了,請指點我一下。確實可以。

import junit.framework.*;

public class MoneyTest extends TestCase {//TestCase的子類
    private Money f12CHF;//提取公用的對象
    private Money f14CHF;  
    public MoneyTest(String name){
        super(name);
    }
    protected void setUp() {//初始化公用對象
        f12CHF= new Money(12, "CHF");
        f14CHF= new Money(14, "CHF");
    }
    public void testEquals() {//測試equals方法的正確性
        Assert.assertTrue(!f12CHF.equals(null));
        Assert.assertEquals(f12CHF, f12CHF);
        Assert.assertEquals(f12CHF, new Money(12, "CHF"));
        Assert.assertTrue(!f12CHF.equals(f14CHF));
    }
  
    public void testAdd() {//測試add方法的正確性
        Money expected= new Money(26, "CHF");
        Money result= f12CHF.add(f14CHF);
        Assert.assertTrue(expected.equals(result));
    }
//    public static void main(String[] args) {
//        TestCase test=new MoneyTest("simple add") {
//                public void runTest() {
//                    testAdd();
//                }
//            };
//        junit.textui.TestRunner.run(test);
//    }
    public static void main(String[] args) {
        TestCase test=new MoneyTest("testAdd");
        junit.textui.TestRunner.run(test);
    }
}


再給一個靜態方法用集成測試的例子:
public static Test suite() {
    TestSuite suite= new TestSuite();
    suite.addTest(
        new testCar("getWheels") {
            protected void runTest() { testGetWheels(); }
        }
    );

    suite.addTest(
        new testCar("getSeats") {
            protected void runTest() { testGetSeats(); }
        }
    );
    return suite;
}


5、應用案例


Junit Primer例程,運行如下:
java com.hedong.JunitLearning.Primer.ShoppingCartTest


Ant+Junit+Mailto實現自動編譯、調試并發送結果的build.xml

JUnit實施,寫得很棒,理解也深刻。例程運行如下:
java com.hedong.JunitLearning.car.testCarNoJunit
java junit.swingui.TestRunner com.hedong.JunitLearning.car.testCar


Junit與log4j結合,阿菜的例程運行:
cd acai
ant junit

6、一些問題
  有人在實踐基礎上總結出一些非常有價值的使用技巧,我沒有經過一一“測試”,暫列在此。

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

不要依賴或假定測試運行的順序,因為JUnit利用Vector保存測試方法。所以不同的平臺會按不同的順序從Vector中取出測試方法。不知3.8中是不是還是如此,不過它提供的例子有一個是指定用VectorSuite的,如果不指定呢?

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

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

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

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

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

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

盡可能地利用JUnit提供地assert/fail方法以及異常處理的方法,可以使代碼更為簡潔。

測試要盡可能地小,執行速度快。

把測試程序建立在與被測對象相同的包中

在你的原始代碼目錄中避免測試碼出現,可在一個源碼鏡像目錄中放測試碼

在自己的應用程序包中包含一個TestSuite測試類

7、相關資源下載
以下jar包,我只是做了打包、編譯和調試的工作,供下載學習之用,相關的權利屬于原作者。

可運行例程.jar

Build.xml

阿菜的例程

Junit API 漢譯(pdf)


8、未完成的任務


httpunit

cactus

將Junit用鏈接池測試

上一頁12下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 国产精品久久婷婷六月丁香 | 曰批全过程免费观看视频 | 欧美成人a人片 | 一级片a级片 | 美女天天干 | 97久久久久 | 26uuu欧美日本 | 亚洲欧美日本国产综合在线 | 中文字幕不卡高清免费 | 欧美激情综合亚洲一二区 | 成年人免费视频网站 | 国产99在线播放免费 | 黄网站在线播放视频免费观看 | free性欧美hd粗暴 | 日本1区2区3区电 | 免费观看欧美一级特黄 | 国产小视频在线免费观看 | 中文字幕在线观看一区二区三区 | 大学生高清一级毛片免费 | 欧美成人午夜精品一区二区 | 国产精品xxx | 黄色小视频在线 | 国产成人19禁在线观看 | 狂野猛交xxxx吃奶 | 五月天激情丁香 | 最近最新免费中文字幕一 | 成人毛片在线观看 | 久久国产精品广西柳州门 | 亚洲成人免费在线 | 黄色片网站免费 | 露脸国产精品自产在线播 | 欧美在线观看视频网站 | 久久久精品午夜免费不卡 | 免费视频网站一级人爱视频 | 欧美一级黄视频 | 国产高清视频一区二区 | 在线视频成人 | 免费看黄视频 | 国产日韩欧美第一页 | 日本videos18高清hd下 | 国产麻豆精品入口在线观看 |