2011-08-05 101 views
1

通常我們從setup()提供輸入文件來插入數據,這樣每次測試都會插入數據,最後在測試後清除它。DbUnit框架測試DAO層

但是,這些數據適用於所有測試,並且如果測試次數更多,它會變得非常多。 因此,如果有任何方法可以給出測試特定輸入(xml)文件,以便該特定文件將由setUp()中的DbUnit插入,因此開銷較小。

任何建議表示讚賞。 謝謝。

回答

1

我注意到你標記了Spring,你可以寫一個org.springframework.test.context.TestExecutionListener做你需要的(擴展AbstractTestExecutionListener)。

beforeTestMethod(...)中使用DbUnit加載數據。使用TestContext檢索有關testClass或testMethod的信息,並根據要加載的數據集來決定。例如,您可以創建一個新的註釋來指定爲測試方法加載哪個數據集。

卸載afterTestMethod(...)中的數據集(如果不使用作爲事務的一部分插入的事務測試和數據)。

註冊您TestExecutionListener使用@TestExecutionListeners註釋 (重要TransactionalTestExecutionListener後指定它,如果你正在使用它,並希望該數據集的插入,形成交易的一部分)。

希望這會有所幫助。