2011-04-29 72 views
2

這似乎是一個簡單的問題。我在Spring應用程序中有一些單元測試。數據庫包含一些oracle視圖,我只想將數據集插入到這些視圖中。 我知道可以將選項設置爲DBunit(表格類型屬性)。但我找不到單身。Unitils/DBunit/Oracle - 如何在oracle視圖中插入數據集?

是否有一些單位屬性插入數據集視圖?

謝謝你的幫助

+0

插入只能在'簡單'視圖(僅基於一個表的視圖)上執行。您不能將記錄插入作爲多個表上的連接結果的視圖中。你需要做的第一件事是確定你是否可以插入到視圖中。 – 2011-04-29 13:23:29

+0

也許你想添加數據到實際用於視圖的表中...... – Cris 2011-04-29 13:59:11

+0

那麼,視圖被切換到db中的不同表集合而無需修改java代碼... – Samuel 2011-04-29 14:12:34

回答

1

好吧,我想我找到一種方法來配置單元。但是那需要一些java代碼。我已經測試過這個解決方案,它似乎工作。

首先我覺得在unitils一些屬性(unitils.properties):

unitils.module.dbunit.className=org.unitils.dbunit.DbUnitModule 
unitils.module.dbunit.runAfter= 
unitils.module.dbunit.enabled=true 

所以它似乎是可以覆蓋DBUnitModule這樣


public class DbUnitModule extends org.unitils.dbunit.DbUnitModule implements Module { 
    /* 
    * (non-Javadoc) 
    * 
    * @see org.unitils.dbunit.DbUnitModule#getDbUnitDatabaseConnection(java.lang.String) 
    */ 
    @Override 
    public DbUnitDatabaseConnection getDbUnitDatabaseConnection(final String schemaName) { 
     DbUnitDatabaseConnection dbConnection = super.getDbUnitDatabaseConnection(schemaName); 
     dbConnection.getConfig().setProperty("http://www.dbunit.org/properties/tableType", new String[] { "VIEW", "TABLE" }); 
     return dbConnection; 
    } 
} 

然後修改unitils.properties中的配置。

+0

在unitils.properties中做什麼修改?僅限於 – Mukus 2013-01-28 07:03:39

+0

:unitils.module.dbunit.className = your.package.YourClassExtendsDbUnitModule – Samuel 2013-05-16 13:00:34