您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
基于JUnit使用Feed4JUnit實現(xiàn)數(shù)據(jù)與代碼分離
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2013/4/12 13:40:26 ] 推薦標簽:

  2. 解壓下載的 zip 包,復(fù)制整個 lib 文件夾到您的 Java 項目的根目錄,如圖 1:

  圖 1. 復(fù)制 lib 到項目根目錄

  3. 選定項目,右鍵選擇項目的屬性,然后通過 Add JARs 將步驟 2 中 lib 文件夾下的所有 Jar 添加到項目的 Build Path 下,如圖 2

  圖 2. 添加 Jar 到 Build Path

   通過以上三步,您已經(jīng)準備好您的 Feed4JUnit 環(huán)境并可以開始使用它,當然,開發(fā)測試代碼之前,您必需要將 Feed4JUnit 相應(yīng)的包 Import 進您的類。

  使用 Feed4JUnit 實現(xiàn)數(shù)據(jù)與代碼分離的測試

  Feed4JUnit 的數(shù)據(jù)源可以包括以下幾種類型 - 文件 (CSV 或者 Excel )、數(shù)據(jù)庫、自定義數(shù)據(jù)源。

  Feed4JUnit 使用一個特殊的運行類 Feeder.class,用來支持與標識參數(shù)化測試,如果您想要編寫數(shù)據(jù)與代碼分離的測試腳本,必須在您的測試類上增加注釋 @RunWith(Feeder.class) 。同時,您需要使用 @Test 來標示您實現(xiàn)測試的方法,并且使用 @Source 來聲明和接收數(shù)據(jù)源的數(shù)據(jù),基本的代碼結(jié)構(gòu)如清單 3 所示:

  清單 3. 基本代碼結(jié)構(gòu)

    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);
 }
}

  以文件作為數(shù)據(jù)源

  Feed4JUnit 支持從 CSV 或者 Excel 文件里面讀取數(shù)據(jù)作為輸入,這里我們以 Excel 文件為例。

  1. 在測試項目的根目錄下創(chuàng)建 Data.xls 數(shù)據(jù)文件,樣例數(shù)據(jù)如圖 3,默認情況下,第一行會以列名存在,在運行過程中不會作為數(shù)據(jù)讀取。

  圖 3. Excel 數(shù)據(jù)源

  2. 創(chuàng)建測試類并在接收數(shù)據(jù)的測試方法上聲明數(shù)據(jù)源為 @Source("Data.xls"),Excel 中的數(shù)據(jù)在傳遞過程中會自動按照列與測試方法的參數(shù)的位置順序進行匹配,并以行作為一個單位讀取并傳遞給測試方法體。比如圖 3 中的 user 列的值會做為方法的第一個參數(shù)傳入方法體中,pw 列的值會作為方法的第二個參數(shù),以此類推。在測試進行過程中,首先在 Excel 文件中讀取一行(包含三列),接著按照位置順序?qū)?shù)據(jù)傳遞到方法體中(每列按順序?qū)?yīng)一個參數(shù))進行執(zhí)行,執(zhí)行完成后讀取 Excel 中的下一行進行相同流程的測試,其原理與 Java 中的迭代器十分類似。請注意當數(shù)據(jù)文件中數(shù)據(jù)的列數(shù)小于測試方法參數(shù)的個數(shù)的時候,測試會因為位置不匹配而失敗。

上一頁1234下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd