• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    有關Junit的多線程測試

    發布: 2008-10-22 09:28 | 作者: 不詳 | 來源: 測試時代采編 | 查看: 1021次 | 進入軟件測試論壇討論

    領測軟件測試網

       一個線程是一個程序中的可執行單元,它是被獨立執行的。在運行時,在程序中的線程有一個公共的內存空間,因此,能夠共享數據和代碼;也就是說,它們是輕量級的。它也共享正在運行程序的進程。
    Java 線程使運行時環境異步,它允許不同的任務同時被執行。(p.272)

        在web應用程序中,許多用戶可能同時發請求給你的軟件。當你寫單元測試對你的代碼進行壓力測試時,你需要模擬許多并發事件,如果你在開發健壯的中間件,這樣做是尤其重要的。對于這些組件,使用線程測試是一個好的想法。

    不幸的是,Junit在這方面是不足的。

    有關Junit和多線程測試的問題

        如果你想驗證下列代碼,你需要下載并安裝Junit。按著指示去做,以便能夠在Junit的網站能夠找到它。不要過分追求細節,我們將簡要的介紹Junit是怎樣工作的。要寫一個Junit的測試,你必須首先創建一個擴展于junit.framework.TestCase(Juint中的基本測試類)的測試類。

        Main()方法和suite()方法被用啟動測試。無論是從命令行還是IDE集成開發環境窗口,必須確保junit.jar在你的CLASSPATH環境變量里指定。然后為BadExampleTest.Class類編譯運行下列代碼:
    import junit.framework.*;
    public class BadExampleTest extends TestCase {
    // For now, just verify that the test runs
    public void testExampleThread()
    throws Throwable {
    System.out.println("Hello, World");
    }
    public static void main (String[] args) {
    String[] name =
    { BadExampleTest.class.getName() };
    junit.textui.TestRunner.main(name);
    }
    public static Test suite() {
    return new TestSuite(
    BadExampleTest.class);
    }
    }

        運行BadExampleTest來驗證所建立的每一件事情的正確性。一旦,main()被調用,Junit框架將自動的執行任意一個用“test”開關命名的方法。繼續并試著運行測試類。如果你正確的做了每一件事,它應該在輸出窗口打印出“Hello World”。
        現在,我們要給程序添加一個線程類。我將通過擴展java.lang.Runnable接口來做這件事情。最后,我們將改變策略,并且擴展一個使線程自動創建的類。
    在DelayedHello的構造器中,我們創建一個新的線程并且調用它的start()方法。
    import junit.framework.*;
    public class BadExampleTest extends TestCase {
    private Runnable runnable;
    public class DelayedHello
    implements Runnable {
    private int count;
    private Thread worker;
    private DelayedHello(int count) {
    this.count = count;
    worker = new Thread(this);
    worker.start();
    }
    public void run() {
    try {
    Thread.sleep(count);
    System.out.println(
    "Delayed Hello World");
    } catch(InterruptedException e) {
    e.printStackTrace();
    }
    }
    }

    public void testExampleThread()
    throws Throwable {
    System.out.println("Hello, World"); //1
    runnable = new DelayedHello(5000); //2
    System.out.println("Goodbye, World"); //3
    }
    public static void main (String[] args) {
    String[] name =
    { BadExampleTest.class.getName() };
    junit.textui.TestRunner.main(name);
    }
    public static Test suite() {
    return new TestSuite(
    BadExampleTest.class);
    }
    }

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    42/4<1234>

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>