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"; } } |
public static void main( String[] args ) { HelloWorld world = new HelloWorld(); System.out.println(world.sayHello()); } |
新的 main() 與我測試程序中的 testSayHello() 非常相似。是的,它看上去不象是一個現實世界中的問題(這是人為示例的問題),但它說明了問題。在單獨的應用程序中編寫 main() 可以改進您的設計,同時幫助您設計測試,F在我們已經創建了一個測試類,讓我們使用 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 實現的可配置,還有開放源代碼。
文章來源于領測軟件測試網 http://www.kjueaiud.com/