您的位置:软件测试 > 开源软件测试 > 开源单元测试工具 > DBunit
DBUnit 进行单元测试
作者:网络转载 发布时间:[ 2013/6/28 13:22:03 ] 推荐标签:

  有了这两个基本的方法以后,DBUnit可以按照它预先缺省的行为工作了。DatabaseTestCase类提供了两个fixture(我叫它固件,不知仁兄同意否?)方法来控制测试前和测试后的数据库状态。这两个方法是:
  getSetUpOperation() 和 getTearDownOperation().  
  一种高效的实施方案是让getSetUpOperation()方法执行REFRESH操作,通过这个操作,我们可以用种子文件中的数据去更新目标数据库里的数据。接下来,是getTearDownOperation(),让他去执行一个NONE操作,也是什么也不执行。

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


  还有一种有效的方法是在getSetUpOperation()方法中执行CLEAN_INSERT操作,这样首先会将目标数据库中与我们提供的种子文件一致的数据删除,然后将我们提供的数据插入到数据库中。这个实施顺序保证了我们对数据库的精确控制。
代码样例
  在一个基于J2EE的人力资源系统中,我们很希望对某个数据操作周期实现测试自动化,这个操作周期包括职员的新增,检索,更新和删除。远程接口定义了下列的业务方法(为了简洁清楚,省略了方法中的throws子句).  
  //译者注:这里的EmployeeValueObject类型对象,译者认为是代表职员实体信息的对象。

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


  测试getEmployeeBySocialSecNum()方法
  需要植入一条数据到目标数据库中,另外,测试deleteEmployee()方法和updateEmployee()方法时,同样也是在先前植入的这条记录的基础上进行。后,测试类会首先利用createEmployee()方法创建一条记录,同时我们需要校验执行这个方法时,是否会有异常发生。  
  下面这个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下一页
软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd