清單 4. 文件數據源示例
package sample.test;
import static org.junit.Assert.assertEquals;
import org.databene.benerator.anno.Source;
import org.databene.feed4junit.Feeder;
import org.junit.Test;
import org.junit.runner.RunWith;
import sample.code.UserAccess;
/*
* Feed4JUnit - Get Data from CSV/Excel File source
*/
@RunWith(Feeder.class)
public class F4JfromFile {
@Test
@Source("Data.csv")//CSV source
public void testAccessCheck_CSV(String userName, String pw, boolean expected) {
assertEquals(expected, UserAccess.accessCheck(userName, pw));
}
@Test
@Source("Data.xls")//Excel source
public void testAccessCheck_Excel(String userName, String pw, boolean expected) {
assertEquals(expected, UserAccess.accessCheck(userName, pw));
}
}
3. 運行測試,因為 Feed4Junit 是 JUnit 的擴展,所以運行方式與 JUnit 完全相同,即以 JUnit 運行即可,運行結果如圖 4 所示,我們可以看到,Data.xls 中的數據已全部傳入測試方法并運行。
圖 4. 運行結果示例
以數據庫作為數據源
通過使用 @Database ,您可以很方便的使用來自于數據庫的數據,這在進行大量測試數據測試的時候或者復用現有的應用業務數據作為測試數據的情況下比較有用。
當您使用來自數據庫的數據源的時候,首先必須使用 @Database 聲明數據庫的信息 ,可以為類或方法添加 @Database 注釋 , 如果注釋類為 @Database 的時候,類中所有的方法都可以使用此數據庫的數據作為源,當聲明 @Database 于方法的時候,此類中僅此方法可以調用數據庫作為數據源。@ Database 具有一些屬性,用于聲明用于連接數據庫信息,請看一下說明:
id: 一個用于標識數據庫數據源標識符,在測試方法的 @Source 中進行引用關聯
url:數據庫的 URL
driver: 數據庫的驅動
user: 數據庫的用戶名
password:數據庫的密碼
完成以上數據庫的定義后,需要在測試方法的 @Source 中引用您所需要的庫,使用屬性 id 和 selector 可以完成此操作:
id: @Source 中的 id 和 @Database 的 id 相對應關聯
selector:SQL 語句,用于查詢出相應的數據傳遞給測試方法
以下我們以 DB2 作為數據源,使用 DB2 的 Sample 數據庫,并創建名為 TEST 的表來存儲測試數據,測試數據與圖 3 Excel 數據源的完全相同,請看圖 5。