2012-10-28 38 views
0

我有一個db層。我想測試db CRUD結果 我希望每個單獨的測試都是獨立的,所以我只是在setUp()中創建表,並將所有表放在tearDown()中。那麼有沒有什麼好的方法來獨立測試數據庫訪問?我的意思是我不需要在每次測試中刪除所有表格如何測試數據庫訪問代碼

+0

爲什麼不'刪除from'表? –

回答

1

有幾種方法。

  1. 您可以使用「DELETE」語句刪除每次測試後的所有數據。據我所知,刪除速度很慢),所以不太可取的做法。

  2. 您可以在每次測試後截斷表格,以使它們爲空。

  3. (我最喜歡的一個)在每次測試前打開一個事務,並且回滾它在測試結束後(甚至成功!)。這樣你就可以像在測試之前一樣保存db中的狀態。

希望這有助於在拆卸或設置

+0

謝謝你!你和@ k3b都給了我很好的建議,所以我很難選擇哪一個作爲答案!最後,我選擇你的,因爲你給我三種方法... – jiluo

1

您可以在數據庫事務中執行數據庫測試,該測試將在測試後回滾。

例如在java/spring中,可以使用將爲每個測試創建和回滾事務的 TestContext framework

+0

感謝您的建議!我不知道以前使用交易。 – jiluo