[英]How do I unit test Django Views?
我想開始將單元測試集成到我的Django項目中,並且由於Django使用函數實現視圖的方式,我發現單元測試視圖很棘手。
例如,如果函數具有URL,則每個函數都是Django中的視圖/頁面。
我如何對Django視圖進行單元測試?
我不確定如何測試視圖是多么棘手。
您只需使用測試客戶端 。
代碼覆蓋很容易。 您可以了解URL請求如何映射到代碼路徑並進行相應的URL請求。
如果需要,您可以通過創建Request對象並檢查Response對象來“手動”調用視圖函數,但這樣做太多了。
如果您對代碼覆蓋率有疑問,這是件好事。 這意味着您擁有無法輕松映射到URL的代碼(這是用戶可以看到的Web應用程序的全部內容。)如果您的代碼未映射到URL,您可能應該(a)刪除代碼或(b)將其重構為一個單獨的模塊。
我們的視圖函數之外有很多模塊。 我們的視圖函數導入這些模塊。 我們用普通的單元測試來測試這些“視圖功能外”模塊。
這是一個典型的結構。
some_big_product/
|-- __init__.py
|-- settings.py
|-- urls.py
|-- logging.ini
|-- other_global_files.py
|-- an_app_1/
| |-- __init__.py
| |-- urls.py
| |-- models.py
| |-- views.py
| |-- tests.py <-- the generic Django testing
| |-- app_specific_module.py
| |-- app_specific_package/
| | |-- __init__.py
| |-- test_app_specific_module.py <-- unittest
| |-- test_app_specific_package.py
|-- generic_module.py
|-- generic_package/
| |-- __init__.py
|-- tests/
| |-- test_this.py
| |-- test_that.py
| |-- test_all.py <-- not always practical
|-- scripts/
|-- run_tests.sh
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.