2. 解壓下載的 zip 包,復制整個 lib 文件夾到您的 Java 項目的根目錄,如圖 1:
圖 1. 復制 lib 到項目根目錄
3. 選定項目,右鍵選擇項目的屬性,然后通過 Add JARs 將步驟 2 中 lib 文件夾下的所有 Jar 添加到項目的 Build Path 下,如圖 2
圖 2. 添加 Jar 到 Build Path
通過以上三步,您已經準備好您的 Feed4JUnit 環境并可以開始使用它,當然,開發測試代碼之前,您必需要將 Feed4JUnit 相應的包 Import 進您的類。
使用 Feed4JUnit 實現數據與代碼分離的測試
Feed4JUnit 的數據源可以包括以下幾種類型 - 文件 (CSV 或者 Excel )、數據庫、自定義數據源。
Feed4JUnit 使用一個特殊的運行類 Feeder.class,用來支持與標識參數化測試,如果您想要編寫數據與代碼分離的測試腳本,必須在您的測試類上增加注釋 @RunWith(Feeder.class) 。同時,您需要使用 @Test 來標示您實現測試的方法,并且使用 @Source 來聲明和接收數據源的數據,基本的代碼結構如清單 3 所示:
清單 3. 基本代碼結構
package sample.test;
import static org.junit.Assert.assertEquals;
import org.databene.feed4junit.Feeder;
import org.databene.benerator.anno.Source;
import org.junit.Test;
import org.junit.runner.RunWith;
/*
* Feed4JUnit - @RunWith, @Test and @Source
*/
@RunWith(Feeder.class) //Specify the class will be ran as Feeder class
public class Feed4JSample {
@Test //Specify the method as a test method
@Source()//Specify the input data source
public void testAccessCheck() {
assertEquals(true, true);
}
}
以文件作為數據源
Feed4JUnit 支持從 CSV 或者 Excel 文件里面讀取數據作為輸入,這里我們以 Excel 文件為例。
1. 在測試項目的根目錄下創建 Data.xls 數據文件,樣例數據如圖 3,默認情況下,第一行會以列名存在,在運行過程中不會作為數據讀取。
圖 3. Excel 數據源
2. 創建測試類并在接收數據的測試方法上聲明數據源為 @Source("Data.xls"),Excel 中的數據在傳遞過程中會自動按照列與測試方法的參數的位置順序進行匹配,并以行作為一個單位讀取并傳遞給測試方法體。比如圖 3 中的 user 列的值會做為方法的第一個參數傳入方法體中,pw 列的值會作為方法的第二個參數,以此類推。在測試進行過程中,首先在 Excel 文件中讀取一行(包含三列),接著按照位置順序將數據傳遞到方法體中(每列按順序對應一個參數)進行執行,執行完成后讀取 Excel 中的下一行進行相同流程的測試,其原理與 Java 中的迭代器十分類似。請注意當數據文件中數據的列數小于測試方法參數的個數的時候,測試會因為位置不匹配而失敗。