簡體   English   中英

Django中的單元測試:如何初始化數據庫

[英]Unit testing in Django: How to initialize database

我正在嘗試使用Django進行測試驅動開發。 我的問題是,在運行測試之前,我需要在數據庫中添加一些內容,例如,許多用戶,部門及其權限。 我嘗試使用Fixtures來做到這一點,但是我真的發現整個過程非常不直觀(我還發現,當我刪除並重新同步數據庫時,我的用戶Fixtures損壞了,因為僅通過id引用了權限)!

我已經搜索了此測試前數據庫初始化的其他解決方案,但是我只能找到非常簡單的情況,其中在TestCase類的setUp方法中執行初始化。 我不認為當您的應用程序具有不同的用戶和權限且都需要測試時,可以使用這種方法。

您能告訴我在開始對大型應用程序進行測試之前如何填充數據庫嗎? 除了Fixture和setUp類,還有其他更好的方法嗎?

示范工廠 (等工具factory_boymodel_mommy )是一個更好的選擇。

根據卡爾·梅耶(Carl Mayer)在“測試和Django”上的幻燈片 ,固定裝置為:

  • 難以維護和更新。
  • 增加測試的相互依賴性。
  • 加載緩慢。

最好使用模型工廠,為什么?

  • 測試代碼本地的測試數據(顯式)。
  • 易於維護。
  • 不要創建該測試不需要的任何數據。
  • 即使對於大型/復雜的測試數據集(輔助函數),效果也很好。

就個人而言,我幾乎在每個django項目中都使用factory_boy進行測試。 值得嘗試,看看。

另請參閱:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM