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

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

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


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

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


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

        <?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> 

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