您的位置:軟件測(cè)試 > 開源軟件測(cè)試 > 開源單元測(cè)試工具 > junit
單元測(cè)試Junit教程
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/1/4 15:41:52 ] 推薦標(biāo)簽:

l          JUnit非常簡(jiǎn)單

撰寫測(cè)試應(yīng)該很簡(jiǎn)單--這是重點(diǎn)!如果撰寫測(cè)試太復(fù)雜或太耗時(shí)間,便無法要求程序設(shè)計(jì)師撰寫測(cè)試。使用JUnit你可以快速的撰寫測(cè)試并檢測(cè)你的程序代碼并逐 步隨著程序代碼的成長(zhǎng)增加測(cè)試。只要你寫了一些測(cè)試,你想要快速并頻繁的執(zhí)行測(cè)試而不至于中斷建立設(shè)計(jì)及開發(fā)程序。使用JUnit執(zhí)行測(cè)試像編譯你的程序代碼那么容易。事實(shí)上,你應(yīng)該執(zhí)行編譯時(shí)也執(zhí)行測(cè)試。編譯是檢測(cè)程序代碼的語(yǔ)法而測(cè)試是檢查程序代碼的完整性(integrity)。

l          JUnit測(cè)試檢驗(yàn)其結(jié)果并提供立即的回饋。

如果你是以人工比對(duì)測(cè)試的期望與實(shí)際結(jié)果那么測(cè)試是很不好玩的,而且讓你的速度慢下來。JUnit測(cè)試可以自動(dòng)執(zhí)行并且檢查他們自己的結(jié)果。當(dāng)你執(zhí)行測(cè)試,你獲得簡(jiǎn)單且立即的回饋; 比如測(cè)試是通過或失敗。而不再需要人工檢查測(cè)試結(jié)果的報(bào)告。

l          JUnit測(cè)試可以合成一個(gè)測(cè)試系列的層級(jí)架構(gòu)。

JUnit可以把測(cè)試組織成測(cè)試系列;這個(gè)測(cè)試系列可以包含其它的測(cè)試或測(cè)試系列。JUnit測(cè)試的合成行為允許你組合多個(gè)測(cè)試并自動(dòng)的回歸(regression)從頭到尾測(cè)試整個(gè)測(cè)試系列。你也可以執(zhí)行測(cè)試系列層級(jí)架構(gòu)中任何一層的測(cè)試。

l          撰寫JUnit測(cè)試所費(fèi)不多。

使用Junit測(cè)試框架,你可以很便宜的撰寫測(cè)試并享受由測(cè)試框架所提供的信心。撰寫一個(gè)測(cè)試像寫一個(gè)方法一樣簡(jiǎn)單;測(cè)試是檢驗(yàn)要測(cè)試的程序代碼并定義期望的結(jié)果。這個(gè)測(cè)試框架提供自動(dòng)執(zhí)行測(cè)試的背景;這個(gè)背景并成為其它測(cè)試集合的一部份。在測(cè)試少量的投資將持續(xù)讓你從時(shí)間及品質(zhì)中獲得回收。

l          JUnit測(cè)試提升軟件的穩(wěn)定性。

你寫的測(cè)試愈少;你的程序代碼變的愈不穩(wěn)定。測(cè)試使得軟件穩(wěn)定并逐步累積信心;因?yàn)槿魏巫儎?dòng)不會(huì)造成漣漪效應(yīng)而漫及整個(gè)軟件。測(cè)試可以形成軟件的完整結(jié)構(gòu)的膠結(jié)。

l          JUnit測(cè)試是開發(fā)者測(cè)試。

JUnit測(cè)試是高度區(qū)域性(localized)測(cè)試;用以改善開發(fā)者的生產(chǎn)力及程序代碼品質(zhì)。不像功能測(cè)試(function test)視系統(tǒng)為一個(gè)黑箱以確認(rèn)軟件整體的工作性為主,單元測(cè)試是由內(nèi)而外測(cè)試系統(tǒng)基礎(chǔ)的建構(gòu)區(qū)塊。開發(fā)者撰寫并擁有JUnit測(cè)試。每當(dāng)一個(gè)開發(fā)反復(fù)(iteration)完成,這個(gè)測(cè)試便包裹成為交付軟件的一部份 提供一種溝通的方式,「這是我交付的軟件并且是通過測(cè)試的。」

l          JUnit測(cè)試是以Java寫成的。

使用Java測(cè)試Java軟件形成一個(gè)介于測(cè)試及程序代碼間的無縫(seamless)邊界。在測(cè)試的控制下測(cè)試變成整個(gè)軟件的擴(kuò)充同時(shí)程序代碼可以被重整。Java編譯器的單元測(cè)試靜態(tài)語(yǔ)法檢查可已幫助測(cè)試程序并且確認(rèn)遵守軟件接口的約定。
一段測(cè)試的程序代碼無法單獨(dú)的執(zhí)行,它需要是執(zhí)行環(huán)境的一部份。同時(shí),它需要自動(dòng)執(zhí)行的單元測(cè)試--譬如在系統(tǒng)中周期性的執(zhí)行所有的測(cè)試以證明沒有任何東西被破壞。由于單元測(cè)試需要符合特定的準(zhǔn)則:一個(gè)成功的測(cè)試不應(yīng)該是人工檢查的(那可要到天荒地老了啊),一個(gè)未通過測(cè)試的失敗應(yīng)可以產(chǎn)出文件以供診斷修改。而Junit可以提供給我們這些便利.。這樣所有測(cè)試開發(fā)者所需撰寫的只是測(cè)試碼本身了。跟optimizeit、Jtest那些昂貴而又超級(jí)麻煩的tool比較起來,其利昭然可見!


我用的eclipse 3.1.2,其中包含了Junit,可以直接使用了.

給出一個(gè)簡(jiǎn)單的測(cè)試實(shí)例
HelloWorld.java

public class HelloWorld {

    public HelloWorld() {
        super();
        // TODO Auto-generated constructor stub
    }
    public String say()
    {
        return "Hello World!";
    }
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub

    }

}


TestHelloWorld.java

import junit.framework.TestCase;

public class TestHelloWorld extends TestCase {
   
    public TestHelloWorld(String name)
    {
            super(name);
        }

        public void testSay() {
           HelloWorld hi = new HelloWorld();
            assertEquals("Hello World!", hi.say());

        }

        public static void main(String[] args) {

            junit.textui.TestRunner.run(TestHelloWorld.class);

        }

    }

上一頁(yè)12下一頁(yè)
軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd