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

l          JUnit非常簡單

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

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

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

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

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

l          撰寫JUnit測試所費不多。

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

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

你寫的測試愈少;你的程序代碼變的愈不穩(wěn)定。測試使得軟件穩(wěn)定并逐步累積信心;因為任何變動不會造成漣漪效應而漫及整個軟件。測試可以形成軟件的完整結(jié)構(gòu)的膠結(jié)。

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

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

l          JUnit測試是以Java寫成的。

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


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

給出一個簡單的測試實例
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