亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

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

除了前面那兩個方法外,我們還重載了 getSetUpOperation 和 getTearDownOperation 方法:DatabaseOperation.REFRESH 告訴DBUnit在測試開始前比較數據庫和配置文件,如果發現測試數據不存或不一致在則插入或更新***。DatabaseOperation.NONE表示什么也不做。

這個CASE應該可以運行的很好,但是如果我們把 getTearDownOperation改成:

@Override
protected DatabaseOperation getTearDownOperation() throws Exception
{
   return DatabaseOperation.DELETE_ALL;
}

會發生java.sql.SQLException: Closed Connection異常。這是為什么呢?問題出在DatabaseTestCase中。

***參數含義
DatabaseOperation.CLEAN_INSERT;      先刪除表中所有,再插入準備的數據
DatabaseOperation.REFRESH;              使用準備數據更新表,存在則update,不存在則insert
DatabaseOperation.DELETE;                只刪除準備的數據
DatabaseOperation.DELETE_ALL           清除所有記錄
DatabaseOperation.NONE;                   啥都不做

java.sql.SQLException: Closed Connection異常
來看一下DatabaseTestCase的一個關鍵成員變量tester和有關的一些方法:

public abstract class DatabaseTestCase extends TestCase
{
   ......
   private IDatabaseTester tester;
   ......
   protected IDatabaseTester getDatabaseTester() throws Exception {
      if (this.tester == null) {
         this.tester = newDatabaseTester();
      }
      return this.tester;
   }
   ......
   protected IDatabaseTester newDatabaseTester() throws Exception{
      logger.debug("newDatabaseTester()- start");
      // 重載的 getConnection 方法,在 IDatabaseTester 里有一個同名方法。
      // 注意區分。
      final IDatabaseConnection connection = getConnection();
      final IDatabaseTester tester
         = new DefaultDatabaseTester(connection);
      return tester;
   }
   ......
   protected void setUp() throws Exception
   {
      logger.debug("setUp()- start");
      super.setUp();
      final IDatabaseTester databaseTester = getDatabaseTester();
      assertNotNull("DatabaseTesteris not set", databaseTester);
      databaseTester.setSetUpOperation(getSetUpOperation());
      databaseTester.setDataSet(getDataSet());
      databaseTester.onSetup();
   }
   ......
}

可見 DatabaseTestCase 內部有一個 IDatabaseTester 接口的實例(tester),實際上所有的測試工作是由它完成的。而DatabaseTestCase的newDatabaseTester方法在生成這個實例的時候用的是DefaultDatabaseTester。傳入一個由重載的getConnection方法返回的IDatabaseConnection實例。

DefaultDatabaseTester記錄了這個連接實例后,提供了一個同名的getConnection()方法(不是DatabaseTestCase中被重載的那個getConnection),用來返回它:

public class DefaultDatabaseTester extends AbstractDatabaseTester
{
   final IDatabaseConnection connection;
   public DefaultDatabaseTester(final IDatabaseConnection connection){
      this.connection= connection;
   }
   public IDatabaseConnection getConnection() throws Exception {
      return this.connection;
   }
}

上一頁12345678下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 妞干网在线观看视频 | 狠狠干网站 | 欧美日韩动漫 | 亚洲精品第五页 | 日韩a在线 | 日韩高清伦理片中字在线观看 | 国产高清国产精品国产k | japanese黑人极品高清 | www.狠狠插 | 欧美a级完整在线观看 | 国产在线h视频 | 可以免费看的黄色片 | 一本色综合| 亚洲欧美另类一区 | 亚洲狠狠97婷婷综合久久久久 | 精品亚洲欧美中文字幕在线看 | 男女做www免费高清视频 | 天天操天天干视频 | 国产精品日韩精品 | 天堂网久久 | 成人午夜影视全部免费看 | 日韩精品中文字幕一区二区三区 | 日韩在线一| 国产麻豆入在线观看 | 欧美巨大xxxx做受高清 | 亚洲日本久久一区二区va | 免费国产午夜在线观看 | 在线视频亚洲欧美 | 国内偷自视频区视频综合 | 亚洲欧美另类在线视频 | 免费成人视屏 | 日本3p视频在线看高清 | 国产一级高清视频免费看 | 欧美乱人伦中文在线观看不卡 | 我想看一级毛片免费的 | 国产无遮挡床戏视频免费 | 亚洲成精品动漫久久精久 | 日韩精品免费一区二区 | 日韩亚洲欧美日本精品va | 香蕉视频久久久 | 国产免费黄色 |