亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
利用Ant和JUnit進行增量開發
作者:網絡轉載 發布時間:[ 2013/1/31 13:59:12 ] 推薦標簽:

  按照約定,測試類的名稱中包含我所測試的類的名稱,但將 Test 附加到結尾。在本例中,我們的測試類是 HelloWorldTest.java 。我復制了 SkeletonTest 中的代碼,并添加了 testSayHello() 來測試 sayHello() 。請注意 HelloWorldTest 擴展了 TestCase。JUnit 框架提供了 assert 和 assertEquals 方法,我們可以使用這些方法來進行驗證。 HelloWorldTest.java 顯示在清單 2 中。
  清單 2. HelloWorldTest.java
package test.com.company; import com.company.HelloWorld; import junit.framework.TestCase; import junit.framework.AssertionFailedError; /** * JUnit 3.2 testcases for HelloWorld */ public class HelloWorldTest extends TestCase { public HelloWorldTest(String name) { super(name); } public static void main(String args[]) { junit.textui.TestRunner.run(HelloWorldTest.class); } public void testSayHello() { HelloWorld world = new HelloWorld(); assert( world!=null ); assertEquals("Hello World", world.sayHello() ); } }

  testSayHello() 看上去和 HelloWorld.java 中原來的 main 方法類似,但有一個主要的不同之處。它不是執行 System.out.println 并顯示結果,而是添加了一個 assertEquals() 方法。如果兩個值不同, assertEquals 將打印出兩個輸入的值。您可能已經注意到這個方法不起作用!HelloWorld 中的 sayHello() 方法不返回字符串。如果我先寫過測試,會捕捉到這一點。我將 "Hello World" 字符串與輸出流聯結起來。這樣,按照清單 3 中顯示的那樣重寫了 HelloWorld,去掉 main() ,并更改了 sayHello() 的返回類型。
  清單 3. Hello world 測試案例。
package com.company; public class HelloWorld { public String sayHello() { return "Hello World"; } }

  如果我保留了 main() 并修改了聯系,代碼看上去如下:
public static void main( String[] args ) { HelloWorld world = new HelloWorld(); System.out.println(world.sayHello()); }

  新的 main() 與我測試程序中的 testSayHello() 非常相似。是的,它看上去不象是一個現實世界中的問題(這是人為示例的問題),但它說明了問題。在單獨的應用程序中編寫 main() 可以改進您的設計,同時幫助您設計測試。現在我們已經創建了一個測試類,讓我們使用 Ant 來將它集成到構建中。

  使用 Ant 將測試集成到構建中
  Jakarta Project 將 Ant 工具說成“不帶 make 缺點的 make”。Ant 正在成為開放源代碼世界中實際上的標準。原因很簡單:Ant 是使用 Java 語言編寫的,這種語言可以讓構建過程在多種平臺上使用。這種特性簡化了在不同 OS 平臺之間的程序員的合作,而合作是開放源代碼社區的一種需要。您可以在自己選擇的平臺上進行開發 和 構建。Ant 的特性包括:

    類可擴展性 Java 類可用于擴展構建特性,而不必使用基于 shell 的命令。
    開放源代碼 因為 Ant 是開放源代碼,因此類擴展示例很充足。我發現通過示例來學習非常棒。
    XML 可配置 Ant 不僅是基于 Java 的,它還使用 XML 文件配置構建過程。假設構建實際上是分層的,那么使用 XML 描述 make 過程是其邏輯層。另外,如果您了解 XML,要學習如何配置構建更簡單一些。

  圖 2 簡要介紹了一個配置文件。配置文件由目標樹構成。每個目標都包含了要執行的任務,其中任務是可以執行的代碼。在本例中, mkdir 是目標 compile 的任務。 mkdir 是建立在 Ant 中的一個任務,用于創建目錄。 Ant 帶有一套健全的內置任務。您也可以通過擴展 Ant 任務類來添加自己的功能。

  每個目標都有的名稱和可選的相關性。目標相關性需要在執行目標任務列表之前執行。例如圖 2 所示,在執行 compile 目標中的任務之前需要先運行 JUNIT 目標。這種類型的配置可以讓您在一個配置中有多個樹。

圖 2. Ant XML 構建圖

  與經典 make 實用程序的相似性是非常顯著的。這是理所當然的,因為 make 是 make。但也要記住有一些差異:通過 Java 實現的跨平臺和可擴展性,通過 XML 實現的可配置,還有開放源代碼。

  下載和安裝 Ant
  首先下載 Ant(請參閱參考資料)。將 Ant 解壓縮到 tools 目錄,再將 Ant bin 目錄添加到路徑中。(在我的機器上是 e: oolsantin 。)設置 ANT_HOME 環境變量。在 NT 中,這意味著進入系統屬性,然后以帶有值的變量形式添加 ANT_HOME。ANT_HOME 應該設置為 Ant 根目錄,即包含 bin 和 lib 目錄的目錄。(對我來說,是 e: oolsant 。)確保 JAVA_HOME 環境變量設置為安裝了 JDK 的目錄。Ant 文檔有關于安裝的詳細信息。

  下載和安裝 JUnit
  下載 JUnit 3.2(請參閱參考資料)。解開 junit.zip ,并將 junit.jar 添加到 CLASSPATH。如果將 junit.zip 解包到類路徑中,可以通過運行以下命令來測試安裝: java junit.textui.TestRunner junit.samples.AllTests

  定義目錄結構
  在開始我們的構建和測試過程之前,需要一個項目布局。圖 3 顯示了我的樣本項目的布局。下面描述了布局的目錄結構:

    build -- 類文件的臨時構建位置。構建過程將創建這個目錄。
    src -- 源代碼的位置。 Src 被分為 test 文件夾和 main 文件夾,前者用于所有的測試代碼,而后者包含可交付的代碼。將測試代碼與主要代碼分離提供了幾點特性。首先,使主要代碼中的混亂減少。其次,它允許包對齊。我熱衷與將類和與其相關的包放置在一起。測試應該和測試在一起。它還有助于分發過程,因為你不可能打算將單元測試分發給客戶。

  在實際中,我們有多個目錄,例如 distribution 和 documentation 。我們還會在 main 下有多個用于包的目錄,例如 com.company.util 。

  因為目錄結構經常變動,所以在 build.xml 中有這些變動的全局字符串常數是很重要的。

圖 3. 項目布局圖

  Ant 構建配置文件示例

上一頁123下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 国产亚洲综合一区 柠檬导航 | 国产成人在线视频观看 | 国产日韩精品一区在线不卡 | 在线观看黄色大片 | 在线亚洲精品国产波多野结衣 | h片在线免费 | 天天狠狠色噜噜 | 一本大道在线观看 | 精品福利影院 | 亚洲全网成人资源在线观看 | 色丝瓜视频 | 精品国产一区二区三区19 | 日韩欧美片 | 午夜男人剧场 | 国产97视频在线 | 日本三级香港三级人妇99视 | 日日爱网站 | 久久免费观看国产精品 | 大胆国模一区二区三区伊人 | 伊人久艹 | 午夜私人福利影院 | 亚洲一级免费毛片 | 国产色婷婷亚洲 | 色八a级在线观看 | 国产精品视频久久久久久 | 久久精品国产久精国产80cm | 欧美成人中文字幕在线视频 | 成年人福利网站 | 韩国伦理片在线观看 | 在线黄色网 | 成人激情开心 | a成人在线 | 欧美日韩精 | 最近2019免费中文字幕6 | 黄色的网站免费 | 爱呦视频在线播放网址 | 欧美xx性| 久久大香香蕉国产免费网站 | 最近2019中文字幕大全7 | 亚洲图片在线欧美专区图片 | 天天操天天干天天干 |