您的位置:軟件測(cè)試 > 開(kāi)源軟件測(cè)試 > 開(kāi)源單元測(cè)試工具 > DBunit
DBUnit 進(jìn)行單元測(cè)試
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/6/28 13:22:03 ] 推薦標(biāo)簽:

  有了這兩個(gè)基本的方法以后,DBUnit可以按照它預(yù)先缺省的行為工作了。DatabaseTestCase類(lèi)提供了兩個(gè)fixture(我叫它固件,不知仁兄同意否?)方法來(lái)控制測(cè)試前和測(cè)試后的數(shù)據(jù)庫(kù)狀態(tài)。這兩個(gè)方法是:
  getSetUpOperation() 和 getTearDownOperation().  
  一種高效的實(shí)施方案是讓getSetUpOperation()方法執(zhí)行REFRESH操作,通過(guò)這個(gè)操作,我們可以用種子文件中的數(shù)據(jù)去更新目標(biāo)數(shù)據(jù)庫(kù)里的數(shù)據(jù)。接下來(lái),是getTearDownOperation(),讓他去執(zhí)行一個(gè)NONE操作,也是什么也不執(zhí)行。

    protected DatabaseOperation getSetUpOperation() 
    throws 
    Exception { 
    return DatabaseOperation.REFRESH; 
    } 
     
    protected DatabaseOperation getTearDownOperation() 
    throws 
    Exception { 
    return DatabaseOperation.NONE; 
    } 


  還有一種有效的方法是在getSetUpOperation()方法中執(zhí)行CLEAN_INSERT操作,這樣首先會(huì)將目標(biāo)數(shù)據(jù)庫(kù)中與我們提供的種子文件一致的數(shù)據(jù)刪除,然后將我們提供的數(shù)據(jù)插入到數(shù)據(jù)庫(kù)中。這個(gè)實(shí)施順序保證了我們對(duì)數(shù)據(jù)庫(kù)的精確控制。
代碼樣例
  在一個(gè)基于J2EE的人力資源系統(tǒng)中,我們很希望對(duì)某個(gè)數(shù)據(jù)操作周期實(shí)現(xiàn)測(cè)試自動(dòng)化,這個(gè)操作周期包括職員的新增,檢索,更新和刪除。遠(yuǎn)程接口定義了下列的業(yè)務(wù)方法(為了簡(jiǎn)潔清楚,省略了方法中的throws子句).  
  //譯者注:這里的EmployeeValueObject類(lèi)型對(duì)象,譯者認(rèn)為是代表職員實(shí)體信息的對(duì)象。

    public void  createEmployee( EmployeeValueObject emplVo ) 
     
    public EmployeeValueObject  getEmployeeBySocialSecNum( String ssn ) 
     
    public void  updateEmployee( EmployeeValueObject emplVo ) 
     
    public void  deleteEmployee( EmployeeValueObject emplVo ) 


  測(cè)試getEmployeeBySocialSecNum()方法
  需要植入一條數(shù)據(jù)到目標(biāo)數(shù)據(jù)庫(kù)中,另外,測(cè)試deleteEmployee()方法和updateEmployee()方法時(shí),同樣也是在先前植入的這條記錄的基礎(chǔ)上進(jìn)行。后,測(cè)試類(lèi)會(huì)首先利用createEmployee()方法創(chuàng)建一條記錄,同時(shí)我們需要校驗(yàn)執(zhí)行這個(gè)方法時(shí),是否會(huì)有異常發(fā)生! 
  下面這個(gè)DBUnit種子文件,叫做"employee_hr_seed.xml",下面將用到這個(gè)文件。

        <?xml version='1.0' encoding='UTF-8'?> 
      <dataset> 
      <EMPLOYEE employee_uid='1' 
      start_date='2001-01-01' 
      first_name='Drew' ssn='333-29-9999' 
      last_name='Smith' /> 
      <EMPLOYEE employee_uid='2' 
      start_date='2002-04-04' 
      first_name='Nick' ssn='222-90-1111' 
      last_name='Marquiss' /> 
      <EMPLOYEE employee_uid='3' 
      start_date='2003-06-03' 
      first_name='Jose' ssn='111-67-2222' 
      last_name='Whitson' /> 
      </dataset> 

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