亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-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
主站蜘蛛池模板: 亚洲性生活视频 | 国产乱子伦一区二区三区 | 在线亚洲+欧美+日本专区 | 88国产经典欧美一区二区三区 | 激情爽毛片私人影院 | 在线观看免费视频a | 一级片免费在线观看 | 欧美日韩在线免费观看 | 欧美人人做人人爽人人喊 | 1级a的观看视频 | 成年大片免费播放视频人 | 成人a毛片一级 | 性无遮挡高清视频免费 | 成人h视频在线 | 亚洲 欧美 另类中文字幕 | 国产日韩亚洲欧洲一区二区三区 | 人人看人人看人做人人模 | 国产高清精品一级毛片 | 狍和美女一级aa毛片 | 亚洲爆乳无码一区二区三区 | 狠狠狠狠狠干 | 亚洲午夜免费视频 | 成年人在线免费观看网站 | 一级特色黄色片 | 亚洲国产成人精品91久久久 | 日本免费三片在线观看 | 亚洲精品在线播放视频 | 欧美国产成人精品一区二区三区 | 久久的色偷偷 | 成人不卡| 欧美日韩国产手机在线观看视频 | 午夜精品久视频在线观看 | 成人国产一区二区三区 | 欧美亚洲国产一区 | 中国一级片免费看 | 欧美理论影院在线观看免费 | 免费看黄的网站在线看 | 欧美老妇人与禽交 | 亚洲欧美一 | 手机看片欧美日韩 | 亚洲欧美在线观看视频 |