2011-03-17 96 views
3

在對模型和數據庫更改方法/函數進行單元測試時,單元測試的最佳方法或思路是什麼?例如,模型中的「發佈」功能除通過/失敗之外沒有可測試的行爲,並且在通過的情況下,它修改數據庫。最佳實踐或方法?單元測試破壞性方法

當前的想法是在測試之前創建當前數據庫的鏡像,並在我的單元測試文件中更改數據庫選擇。謝謝你的建議。

+1

您必須在單元測試中設置測試數據庫。 – 2011-03-17 04:34:25

回答

6

如果你想這樣做(在隔離=測試)單元測試:

  • 業務邏輯將執行鍼對假數據庫(庫模擬)
  • 測試檢查,如果業務邏輯真的叫做庫刪除方法。

如果你想與業務邏輯和數據庫可以

  • 打開一個數據庫事務
  • 通過SQL
  • 到數據庫中添加數據執行的是破壞了業務邏輯集成測試剛剛添加的數據
  • 驗證數據是否不在數據庫中(通過sql)
  • 回滾數據庫事務。

更新:

如果您使用的是.NET,你應該看看ndbunit爲Java dbunit

+0

我完全同意 – Jean 2011-03-17 08:24:09

1

使用xtunit,如果你是.NET。這將在事務中包裝您的測試,並在完成時將其回滾。

1

不要鏡像數據庫...存根。如果您正在測試數據庫,那麼您不是單元測試。