Unitils是一個很是好用的集成了多個測試組件的工具,可是在使用過程當中也遇到了一些問題,特記錄以下: java
現象:@ExpectedDataSet測試失敗,未匹配到方法提交到數據庫中的數據。
分析:檢測結果顯示經過@ExpectedDataSet得到的數據庫數據並不包含方法執行提交的數據,懷疑爲二者並無共享同一個數據庫鏈接,然而複覈源碼unitils用的也是DataSourceUtils,最後發現是spring本身維護了一個dataSource,Unitils也維護了一個dataSource,形成沒法共享鏈接。
解決:修改spring配置文件,將dataSource改成:
spring
<bean id="dataSource" class="org.unitils.database.UnitilsDataSourceFactoryBean" />