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

測試
DatabaseTestCase類
DBUnit提供了一個抽象類: DatabaseTestCase,它繼承自 JUnit的 TestCase,這個類有兩個方法需要重載:

protecte abstract IDatabaseConnection getConnection() throws Exception;
protected abstract IDataSet getDataSet() throws Exception;

getConnection用于告訴測試用例如何找到數(shù)據(jù)庫連接;getDataSet用于告訴測試用例如何獲取測試數(shù)據(jù)文件(dataSet.xml)。下面我們先繼承這個抽象類編寫測試用例:

package com.wang.dbunit;
import java.io.FileInputStream;
import java.sql.Connection;
import java.util.Properties;
import javax.sql.DataSource;
import com.wang.dbunit.Account;
import org.apache.log4j.Logger;
import org.apache.log4j.LogManager;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.dbunit.DatabaseTestCase;
import org.dbunit.database.DatabaseConnection;
import org.dbunit.database.IDatabaseConnection;
import org.dbunit.dataset.IDataSet;
import org.dbunit.dataset.xml.FlatXmlDataSet;
import org.dbunit.operation.DatabaseOperation;
public class HelloDBUnit extends DatabaseTestCase
{
   static Logger logger
      = LogManager.getLogger(HelloDBUnit.class.getName());
   privatestatic ApplicationContext context;
   protected Properties props = new Properties();
   public HelloDBUnit() throws IOException
   {
      super();
      props.load(Resources.getResourceAsStream(
         "database.properties"));
      context = newClassPathXmlApplicationContext(
         "classpath:ApplicationContext.xml");
   }
   ////////////////////////////////////////////////
   @Override
   protected IDatabaseConnection getConnection() throws Exception
   {
      DataSourcedataSource
      = (DataSource)context.getBean("dataSource");
      Connectionconnection = dataSource.getConnection();
      // 如果所用測試帳戶是 DBA,為了避免出現(xiàn) AmbiguousTableNameException
      // 異常,下面必須改寫為 newDatabaseConnection(connection, SCHEMA)
      // 形式。注意SCHEMA 要大寫**
      return new DatabaseConnection(connection);
   }
   @Override
   protected IDataSet getDataSet()throws Exception
   {
      return new FlatXmlDataSet(
               new FileInputStream("bin/dataSet.xml"));
   }
   ///////////////////////////////////////////////
   @Override
   protected DatabaseOperation getSetUpOperation() throws Exception
   {
      return DatabaseOperation.REFRESH;
   }
   @Override
   protected DatabaseOperation getTearDownOperation() throws Exception
   {
      return DatabaseOperation.NONE;
   }
   ////////////////////////////////////////////////////
   public void testSelectAccount()
   {
      AccountManager manager
         = (AccountManager)context.getBean("accountManager");
      try
      {
         Accountaccount
            = manager.getAccount("Nick", "Marquiss", true);
         assertNotNull(account);
      }
      catch (Exceptione)
      {
         logger.error(e.getMessage(),e);
      }
   }
   public void testCreateAccount()
   {
      AccountManager manager
         = (AccountManager)context.getBean("accountManager");
      try
      {
          manager.createAccount("TEST", "test");
      }
      catch(Exception e)
      {
          logger.error(e.getMessage(),e);
      }
   }
}

在getConnection方法中,我們通過Spring配置文件獲得數(shù)據(jù)連接。

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