2016-06-29 18 views
-1

我有這樣的服務,我需要創建單元測試:使用DAO JUnit測試創建並獲得ID

  SomeObject obj = new SomeObject(); 

      String objConfig = "<root id=%id% param1="something">....</root>" 

      obj.setField1("value1"); 
      obj.setField2("value2"); 

      someObjectDao.create(obj); 

      Long objId = obj.getId(); 
      obj.setConfig(objConfig.replace("%id%", objId.toString())); 
      someObjectDao.update(obj); 

現在的問題是,在實際情況下,DAO創建將在分配ID對象,但是如何通過單元測試設置對象ID?

回答

0

您可以通過兩種方式做到這一點(如果你正在使用JUnit 4):

  1. 實際使用DAO和標記測試類爲@Transactional和@Rollback。每個測試方法將在單獨的事務中打開,記錄將被插入到數據庫中並且如實際系統中那樣處理,但是在方法退出回滾之後將發生。

  2. 使用一些模擬框架,即mockito,someObjectDao的mock create()方法,根據需要設置id。