您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
junit單元測試的意義
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/6/27 10:58:07 ] 推薦標(biāo)簽:

l          JUnit非常簡單

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

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

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

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

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

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

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

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

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

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

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

l          JUnit測試是以Java寫成的。

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

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

給出一個(gè)簡單的測試實(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);

        }

    }

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