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

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

  • <strong id="5koa6"></strong>
  • (一)利用 Eclipse 進行單元測試

    發表于:2009-04-02來源:作者:點擊數: 標簽:單元eclipseEclipse
    您的傳統代碼是不是要求使用匹配的類測試套件才能針對其源代碼庫運行?針對此類目的,jMock 堪稱是一個優秀的 測試框架 。但是,并不是所有情況都能夠適用,尤其是必須以 jMock 不期望的方式構造對象時。為避免生成自定義模擬對象套件才能支持應用程序中的 單
    您的傳統代碼是不是要求使用匹配的類測試套件才能針對其源代碼庫運行?針對此類目的,jMock 堪稱是一個優秀的測試框架。但是,并不是所有情況都能夠適用,尤其是必須以 jMock 不期望的方式構造對象時。為避免生成自定義模擬對象套件才能支持應用程序中的單元測試的麻煩,可以調整 RMock,與 jMock 無縫地結合使用,從而解決這一問題。
            模擬對象將模仿出于指導代碼執行的惟一目的而編寫的類的行為,以便它在測試時符合代碼執行要求。最終,模擬對象數目可以隨著應用程序類數目的增長而增長。使用 jMock、RMock 甚至 EasyMock 等框架有助于消除對物理的獨立存在的模擬對象集的需求。
      EasyMock 框架的一個主要缺點是不能模擬具體類 —— 而只能模擬接口。在本文中,我將向您展示怎樣使用 jMock 框架來模擬具體類和 接口,以及如何用 RMock 測試某些模糊的情況。
    在 Eclipse IDE 中配置 jMock 和 RMock
      首先啟動 Eclipse 集成開發環境 (IDE)。接下來,創建一個基本 Java™ 項目,稍后將把 JUnit、jMock 和 RMock Java Archive (JAR) 庫導入到該項目中。將 Java 項目命名為 TestingExample。在 Java Perspective 內,選擇 Project > Properties,然后單擊 Libraries 選項卡,如下所示:

    圖 1. 在 Eclipse 中編輯 TestingExample 項目的屬性

          

      當 JAR 文件位于 Java 類路徑(即,已在 Eclipse 內配置的 Java 運行時環境(Java Runtime Environment,JRE))中時,請使用 Add JARs 按鈕?!     dd Variable 按鈕適用于文件系統(本地或遠程)中的資源(包括 JAR)所駐留的具體目錄,并且通??梢砸么税粹o。在必須引用 Eclipse 中默認的那些特定資源或為特定的 Eclipse 工作區環境配置的那些特定資源時,請使用 Add Library 按鈕。單擊 Add Class Folder,從已經配置為項目一部分的一個現有項目文件夾中添加資源。
      對于本示例,請單擊 Add External JARs 并瀏覽到已下載的 jMock 和 RMock JAR。將其添加到項目中。當顯示圖 2 中所示的屬性窗口時,請單擊 OK。

    圖 2. 已添加到 TestingExample 項目中的 jMock 和 RMock JAR

                              
    TestExample 源代碼
      對于 TestExample 項目,您將使用來自四個類的源代碼:
    ServiceClass.javaCollaborator.java
    ICollaborator.java
    ServiceClassTest.java
      待測試的類將是 ServiceClass,該類包含了一個方法:runService()。服務方法將獲取實現簡單接口 ICollaborator 的 Collaborator 對象。具體的 Collaborator 類中實現了一個方法:executeJob()。Collaborator 是必須正確模擬的類。
      第四個類是測試類:ServiceClassTest(實現的性質已經被盡可能地簡化)。清單 1 將顯示第四個類的代碼。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品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>