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

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

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

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

    XP單元測試工具Junit源代碼學習

    發布: 2009-3-25 11:15 | 作者: 不詳 | 來源: 測試時代采編 | 查看: 136次 | 進入軟件測試論壇討論

    領測軟件測試網

    主要方法

    public
    TestResult:初試化
    addError:synchronized 方法,增加一個錯誤并向所有監聽程序發送錯誤,調
    用TestListener. addError
    addFailure:synchronized 方法,增加一個失敗并向所有監聽程序發送失敗,調
    用TestListener. addFailure
    addListener:synchronized 方法,增加監聽程序
    removeListener:synchronized 方法,移走監聽程序
    endTest:結束測試,并通知所有監聽程序,調用TestListener.endTest
    errorCount:synchronized 方法,返回錯誤個數
    errors:synchronized 方法,用Enumeration 返回所有錯誤
    failureCount:synchronized 方法,返回失敗個數
    failures:synchronized 方法,用Enumeration 返回所有失敗
    run:運行測試,創建一個Anonymous 類,實現接口Portectable,然后調用
    runProtected 方法,可以參看TestCase 的run 方法。
    runCount:synchronized 方法,返回運行數量
    runProtected:實際運行測試
    runTests:deprecated 方法,被runCount 方法替代
    shouldStop:synchronized 方法,返回是否應該停止測試。
    startTest:開始測試,并通知所有監聽程序,調用TestListener. startTest
    stop:synchronized 方法,設置停止標志fStop 為真。注意是否停止測試TestReuslt
    不負責的,stop 只是簡單設置停止標志。
    testErrors:deprecated synchronized 方法,被errorCount 替代
    failureCount:deprecated synchronized 方法,被testFailures 替代
    wasSuccessful:synchronized 方法,如果所有運行過的測試方法都通過,返回
    真,否則為否。
    private
    cloneListeners:復制fListeners,主要用于要使用監聽列表的endTest、startTest、
    addError、addFailure
    Class TestSuite
    TestSuite 用于將多個TestCase 集合起來放在一起管理,TestSuite 在增加
    TestCase 的時候實際已經將TestCase 實例化(按包括方法多少做多少次實例化)。
    主要屬性:
    private Vector fTests= new Vector(10):存放TestCase 的實例
    private String fName:TestSuite 名稱
    主要方法:
    public
    TestSuite:初始化,可以選擇空、指定名稱或包括指定的類。如果是指定的類,
    那么在TestSuite 初始話的時候,TestCase 已經實例化并加入到fTests 中。
    addTest:增加一個TestCase/TestSuit 的實例到fTests 中。注意由于TestCase 的
    實例化實際上只指定一個測試方法,即增加一個TestCase 的實例是注冊了其中一
    個測試方法,參看TestCase 類。如參數是一個TestSuite,則相當于增加了一個子
    Suite.
    addTestSuite:增加一個子Suite,實際效果同參數為TestSuite 的addTest。
    countTestCases:返回Suite(包括子Suite)中的TestCase 實例(測試方法)數

    run:運行測試,注意這里是運行fTests 中的所有測試,用了TestResult.
    shouldStop 方法來判斷是否終止運行。實際是調用了runTest,逐漸
    runTest:運行某一TestCase 或子Suite 的測試,注意使用了遞歸。如果參數test
    是一個TestSuite,會再調用TestSuite.run
    testAt:返回fTests 指定順序的TestCase 或者TestSuite
    testCount:返回fTests 大小,注意和countTestCases 的區別
    tests:返回fTests 的內容
    setName:設置名稱
    getName:增加名稱
    toString:
    private
    addTestMethod:增加一個測試方法(TestCase 實例)到fTests
    exceptionToString:返回一個Throwable 中的提示信息
    getConstructor:返回指定類的構造函數
    isPublicTestMethod:判斷一個方法是否是public 的測試方法,即一個函數是否
    是public 的,同時是一個測試方法,測試方法參考下面的isTestMethod。
    isTestMethod:判斷一個方法是否是測試方法,既以”test”為前綴、沒有參數及
    返回值。
    warning:增加一個錯誤提示Testcase到fTests中,注意這里也使用了Anonymous
    Class。warning 使用主要考慮的往往在對TestSuite 進行操作的時候,不會因為有
    錯就終止操作,而是在run 的時候報告錯誤
    Package extensions
    Package extensions 主要包括TestCase 的各種擴展。
    Class Hierarchy
    Class TestDecorator
    TestDecorator 及其子類主要用于在TestCase 運行前后加入特定操作,進行修
    飾。不應該使用TestDecorator 而應該使用TestDecorator 的子類
    主要屬性
    protected Test fTest:被修飾的TestCase/TestSuite。

    主要方法

    Public
    TestDecorator:初始化,對fTest 賦值。
    basicRun, run:這兩種方法實際都一樣,運行測試,為什么要有兩個請看class
    TestSetup 中的run 方法代碼,run 方法可能被子類覆蓋,但basicRun 不覆蓋
    countTestCases:返回TestCases/TestSuite 中測試方法的數量,實際是調用
    fTest.countTestCases
    getTest:返回fTest
    toString:
    Class RepeatedTest
    繼承TestDecorator,重復運行TestSuite 指定次數。
    主要屬性
    private int fTimesRepeat:保存要運行的次數

    主要方法

    RepeatedTest:初始化,對fTimesRepeat、fTest 賦值
    countTestCases:返回要允許的測試方法總次數,TestCases/TestSuite 中測試方
    法的數量*fTimesRepeat
    run:運行測試
    toString:
    Class TestSetup
    繼承TestDecorator,在運行fTests 前后執行特定操作,注意和TestCase 中的
    setUp/dearDown 不同,TestSetup 是在fTests 第一個方法運行前執行setUp,在所
    有方法執行完畢后執行dearDown,具體看run 方法代碼。
    Public:
    TestSetup:初始化,對fTests 賦值
    run:運行測試, 聲明了一個Anonymous Classes,實現了Interface Portectable
    setUp:運行前要執行的操作,注意應該和fTests 定義的類無關
    teardown:運行前要執行的操作,注意應該和fTests 定義的類無關
    Class ActiveTestSuite
    繼承TestSuite,在不同線程中運行測試方法,在所有方法運行完畢后在關閉
    線程。
    主要屬性
    private volatile int fActiveTestDeathCount:保存已經運行完畢的線程數量
    主要方法
    Public:
    run:覆蓋父類函數,運行測試。增加對fActiveTestDeathCount 置0,和線程
    結束控制函數
    runTest:覆蓋父類函數,運行測試方法,主要是先創建一個Thread,然后運
    行測試。
    waitUntilFinished:判斷是否應該結束Thread,直到fActiveTestDeathCount 等
    于testCount,即TestSuite. fTests 大小
    runFinished:由runTest 調用,fActiveTestDeathCount 加一
    Class ExceptionTestCase
    接觸TestCase,擁有測試TestCase 方法是否拋出特定Exception。
    主要屬性
    Class fExpected:保存要拋出的Exception

    主要方法

    Public
    ExceptionTestCase:初始化,指定fExpected
    Protected
    runTest:運行測試,主要是增加了Exception 捕獲
    Package runner
    Package runner 主要用于定義一個基本抽象的runner,由runner 派生出來的有
    swing、awt 和text 三種TestRunner。
    Class & Interface Hierachy
    Interface FailureDetailView
    顯示失敗信息接口。主要方法有:
    getComponent:返回用于顯示TraceView 的Component
    showFailure:顯示失敗,參數為TestFailure
    clear:清除view
    Interface TestSuiteLoader
    定義如何裝入一個TestSuite,主要方法
    load:abstract 方法,throws ClassNotFoundException,裝入TestSuite
    reload:abstract 方法,throws ClassNotFoundException,重新裝入TestSuite
    Interface TestCollector
    用于收集TestCase/TestSuite 的顯示名稱。只有一個方法
    collectTests:以Enumeration 返回所有TestCase/TestSuite 的顯示名稱。
    Class Sorter 和interface Sorter. Swapper
    Class Sorter 用于提供一個快速排序法,interface Swapper 是一個內部接口,根
    據注釋說明,Sorter由于與JDK 1.1.7兼容性問題,Sorter不能支持jdk2的collection
    類。
    interface Sorter. Swapper 只有一個方法
    swap:進行替換
    Class Sorter 只有一個方法
    sortStrings:對字符進行排序
    由于interface Sorter 沒有實現類,Sorter 不能直接使用
    Class Version
    Class Version 用于控制Junit 版本,主要方法只有一個:
    id:返回版本號碼
    Class StandardTestSuiteLoader
    實現Interface TestSuiteLoader。Class StandardTestSuiteLoader 是JDK2 本身
    ClassLoader 的TestSuite 裝載,同一個類只能裝入一次。

    主要方法:

    load:裝載
    reload:重新裝載
    Class TestCaseClassLoader
    繼承JDK2 標準類java.lang.ClassLoader,用于取代系統確省的類裝入類。主
    要是實現只從指定的路徑中裝入類,對于部分系統Package 或其他想使用系統裝
    入而不是使用TestCaseClassLoader 裝入的,可以修改defaultExclusions 或將其寫
    入到文件
    excluded.properties 中,系統默認使用系統裝入的Package 有junit.framework、
    junit.runner 、junit. extensions , 文件excluded.properties 必須和Class
    TestCaseClassLoader 放在一起。在3.72 版本中的TestCaseClassLoader 不能裝入
    jar 文件中類。
    主要屬性
    private Vector fPathItems:類查找路徑存放
    private String[] defaultExclusions:確省要排除junit 的三個package
    static final String EXCLUDED_FILE:用戶自定義要排除的類
    private Vector fExcluded:要排除的路徑

    主要方法

    Public:
    TestCaseClassLoader:使用系統默然或指定的類查找路徑(使用系統默認
    路徑分割符號的字符串)初始化,在初始化的時候會調用scanPath 將搜索路徑加
    到fPathItems 中,調用readExcludedPackages 函數,將defaultExclusions 及
    EXCLUDED_FILE 中定義的要排除的類加入到fExcluded 中
    getResource : 返回指定資源的url 路徑, 調用JDK2 系統的
    ClassLoader.getSystemResource。資源可以是audio,icon 等,具體可以參看JDK2
    的類說明
    getResourceAsStream:以輸入流的方式返回指定的資源
    isExcluded:判斷一個類或包是否應該排除、使用系統標準裝入
    loadClass:synchronized 方法。裝入一個類,覆蓋父類方法,請參看JDK2
    中ClassLoader. loadClass 定義,對于在fExcluded 的類,采用findSystemClass 直
    接裝入。其他的將在fPathItems 定義的路徑中尋找(調用lookupClassData),找
    到了就使用defineClass 將lookupClassData 返回的字節流轉為類并返回,否則就
    拋出ClassNotFoundException
    package private(default)
    isJar:判斷一個文件是否用jar 或zip 結尾
    private
    scanPath:由TestCaseClassLoader 調用將搜索路徑加到fPathItems 中
    lookupClassData:查找指定的類,并將class 內容以字節流的方式返回,
    調用了loadJarData,loadFileData。
    loadFileData:從文件中裝入類的字節流實際讀入是調用函數getClassData
    loadJarData:從zip 文件中(注意,3.72junit 不支持jar 文件)讀入類的字
    節流
    readExcludedPackages:將defaultExclusions 及EXCLUDED_FILE 中定義
    的要排除的類加入到fExcluded 中
    Class ReloadingTestSuiteLoader
    實現接口TestSuiteLoader,使用TestCaseClassLoader 來裝入類。主要方法:
    load:裝載
    reload:重新裝載
    Class ClassPathTestCollector
    實現TestCollector接口,分析Java Class Path,并對Class Path中所有的類(JAR、
    ZIP 文件除外)進行分析,根據指定的規則找出可以運行的測試類。具體規則見
    isTestClass 方法
    主要屬性:
    static final int SUFFIX_LENGTH:保持”.class”的長度

    主要方法

    Public
    ClassPathTestCollector:初始化函數
    collectTests:以Enumeration 的方式返回所有可以運行的測試類,調用
    splitClassPath 將Class Path 分解為一個Vector,調用collectFilesInRoots 獲取類
    Package Private(Default)
    collectFilesInRoots:搜索參數一中的路徑,返回所有類。調用gatherFiles
    實際獲取類
    gatherFiles:獲取指定目錄下的所有類,是一個遞歸函數。
    splitClassPath:將Class Path 分解為一個Vector
    Protected
    isTestClass:判斷一個類是不是測試類,規則文件名中擴展名為class,不包
    括”$”,包含了”Test”。
    classNameFromFile:從文件名中獲取類名稱
    Class SimpleTestCollector
    繼承了ClassPathTestCollector , 從代碼來看, 實際沒有對
    ClassPathTestCollector 做任何修改,雖然代碼包括isTestClass,但其中的代碼和
    ClassPathTestCollector 中是一樣的。
    Class LoadingTestCollector
    繼承了ClassPathTestCollector,修改了判斷測試類的方法。
    主要屬性:
    TestCaseClassLoader fLoader:類裝入類

    延伸閱讀

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

    32/3<123>

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