我目前正在測試我的Spring存儲庫,並決定使用MariaDB服務器實例而不是內存中的Derby實例,因爲涉及數據庫視圖的測試有一些複雜性。爲什麼我的數據庫不能與我的Spring DBUnit測試中的工件混雜在一起?
雖然測試最終也沒有錯誤和失敗成功,我注意到,我沒有一個@DatabaseTeardown
註釋添加到我的測試用例。所以我決定檢查我的數據庫中的測試剩餘的不需要的行,並發現我的數據庫和測試前一樣空。
有人可以解釋爲什麼會發生這種情況嗎?
我目前正在測試我的Spring存儲庫,並決定使用MariaDB服務器實例而不是內存中的Derby實例,因爲涉及數據庫視圖的測試有一些複雜性。爲什麼我的數據庫不能與我的Spring DBUnit測試中的工件混雜在一起?
雖然測試最終也沒有錯誤和失敗成功,我注意到,我沒有一個@DatabaseTeardown
註釋添加到我的測試用例。所以我決定檢查我的數據庫中的測試剩餘的不需要的行,並發現我的數據庫和測試前一樣空。
有人可以解釋爲什麼會發生這種情況嗎?
正如你所說你在你的測試用例中使用@Transactional,它的默認行爲是測試,即將整個測試包含在一個事務中並自動回滾它,從而確保你的數據庫處於與之前相同的狀態測試用例。
檢查這個StackOverflow的答案 - https://stackoverflow.com/a/9817815/1589165
這是記錄在這裏春文檔 - http://docs.spring.io/spring/docs/current/spring-framework-reference/html/integration-testing.html#testcontext-tx
有沒有遇到'@ Transactional'在你的測試用例類? –
是的,事實上,我確實有'@ Transactional' – VikNop
春季測試的默認值是回滾,這是你所看到的嗎? –