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

protected void setUp() throws Exception
{
   DataSource dataSource = getDataSource();
   Connection connection = dataSource.getConnection();
   IDatabaseConnection dbUnitCon
      = new DatabaseConnection(connection, "SYSTEM");
   if(getDataSet() != null)
   {
      try
      {
          getSetUpOperation().execute(dbUnitCon, getDataSet());
      }
      finally
      {
          if(connection!= null)
             connection.close();
      }
   }
}
protected void tearDown() throws Exception
{
   DataSource dataSource = getDataSource();
   Connection connection = dataSource.getConnection();
   IDatabaseConnection dbUnitCon
      = new DatabaseConnection(connection, "SYSTEM");
   if(getDataSet()!= null)
   {
      try
      {
          getTearDownOperation().execute(dbUnitCon,getDataSet());
      }
      finally
      {
          if(connection!= null)
             connection.close();
      }
   }
}


支持事務(wù)回滾
雖然DBUnit提供了一些方法讓我們可以在測(cè)試開始和結(jié)束時(shí)清理數(shù)據(jù)庫,但是有時(shí)候依然不能滿足需求,比如在上面的代碼中,我們?cè)趫?zhí)行階段插入了一條記錄(見testCreateAccount方法),這種不是在種子文件中的額外數(shù)據(jù),測(cè)試結(jié)束后除非在tearDown中返回DatabaseOperation.DELETE_ALL,否則是不會(huì)被自動(dòng)刪除的,可是如果刪除全部數(shù)據(jù),那么又有可能刪掉了不希望刪掉的數(shù)據(jù)。Spring提供了一個(gè)AbstractTransactionalDataSourceSpringContextTests測(cè)試類,這個(gè)類可以在測(cè)試結(jié)束后回滾數(shù)據(jù)庫,可是DBUnit沒有提供類似的機(jī)制,所以我們要進(jìn)一步手工擴(kuò)展測(cè)試用例,以加入類似功能。

修改ApplicationContext.xml
首先,修改Spring的配置文件ApplicationContext.xml,加入以下配置:

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
   <property name="dataSource">
      <ref bean="dataSource"/>
   </property>
</bean>
<bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
   <property name="transactionManager">
      <ref bean="transactionManager"/>
   </property>
   <property name="transactionAttributes">
      <props>
          <prop key="*">PROPAGATION_REQUIRED</prop>
      </props>
   </property>
</bean>

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