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

  圖 5. 數(shù)據(jù)表中的測(cè)試數(shù)據(jù)

  首先,創(chuàng)建測(cè)試類(lèi),添加 @Database 注釋并增加數(shù)據(jù)庫(kù)的連接信息,同時(shí)指定一個(gè)表示數(shù)據(jù)庫(kù)的 id,在測(cè)試方法的 @Source 中通過(guò) id 進(jìn)行關(guān)聯(lián),并制定 selector 的語(yǔ)句進(jìn)行數(shù)據(jù)查詢(xún),例如本例中的 selector = "select * from TEST",會(huì)從 TEST 表中取出全部數(shù)據(jù)用于測(cè)試,細(xì)節(jié)請(qǐng)參考以下代碼示例:

  清單 5 為在類(lèi)上聲明 @Database。

package sample.test;

import static org.junit.Assert.assertEquals;

import org.databene.benerator.anno.Database;
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 Database, all test methods can use the database data
 */
@RunWith(Feeder.class)
@Database(
  id = "testdb",
  url = "jdbc:db2://localhost:50000/SAMPLE",
  driver = "com.ibm.db2.jcc.DB2Driver",
  user = "db2admin",
  password = "db2admin")
public class F4JfromDB {

 @Test
 @Source(id = "testdb", selector = "select * from TEST")
 public void testAccessCheck(String userName, String pw, String expected) {
  Boolean bSucess = UserAccess.accessCheck(userName.trim(), pw.trim());
  assertEquals(expected.trim(), bSucess.toString());

 }
}

  清單 6. 在方法上聲明 @Database
/*
 * Feed4JUnit - Get Data from Database,
 only the specified method can use the database data
 */

@RunWith(Feeder.class)
public class F4JfromDB_Method {
 @Test
 @Database(
   id = "testdb",
   url = "jdbc:db2://localhost:50000/SAMPLE",
   driver = "com.ibm.db2.jcc.DB2Driver",
   user = "db2admin",
   password = "db2admin")
 @Source(id = "testdb", selector = "select * from TEST")
 public void testAccessCheck(String userName, String pw, String expected) {
  Boolean bSucess = UserAccess.accessCheck(userName.trim(), pw.trim());
  assertEquals(expected.trim(), bSucess.toString());

 }
}

 

  測(cè)試運(yùn)行過(guò)程中,通過(guò) url,driver 等信息建立數(shù)據(jù)連接,通過(guò) selector 發(fā)出數(shù)據(jù)請(qǐng)求,后完成查詢(xún)并把數(shù)據(jù)傳遞給測(cè)試方法,數(shù)據(jù)在傳遞給方法的時(shí)候,會(huì)按數(shù)據(jù)表的列的順序與參數(shù)進(jìn)行匹配,運(yùn)行結(jié)果與圖 4 類(lèi)似。

  自定義數(shù)據(jù)源

  除了 CSV,Excel 和數(shù)據(jù)庫(kù)的數(shù)據(jù)源外,F(xiàn)eed4JUnit 還提供自定義數(shù)據(jù)源,以滿足不同用戶的需求,用戶同樣可以通過(guò)封裝 JUnit 4 提供的參數(shù)化測(cè)試的方法來(lái)完成數(shù)據(jù)源自定義,所有這里作者不再詳述,用戶可以封裝并取得不同的數(shù)據(jù)源的數(shù)據(jù),傳遞給 Feed4JUnit 的相應(yīng)接口,來(lái)完成數(shù)據(jù)源的自定義。

  結(jié)束語(yǔ)

  本文通過(guò)對(duì)比介紹和簡(jiǎn)單易懂的實(shí)例全面講解了 Feed4JUnit 對(duì)數(shù)據(jù)與代碼分離的測(cè)試支持。通過(guò)提供簡(jiǎn)單的注釋?zhuān)現(xiàn)eed4JUnit 使用戶能夠極其方便的實(shí)施數(shù)據(jù)與代碼分離的測(cè)試,極大地增強(qiáng)了 JUnit 測(cè)試框架的易用性。 相信您已經(jīng)在本文的敘述中看到它的優(yōu)點(diǎn)。同時(shí),本文所敘述的僅僅是 Feed4JUnit 提供的測(cè)試增強(qiáng)功能的一部分,F(xiàn)eed4JUnit 同時(shí)還提供了大量數(shù)據(jù)的隨機(jī)測(cè)試和等價(jià)類(lèi)測(cè)試等眾多功能,如果您感興趣可以自行參考。

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