django 測試 (一)

django官方文檔:
https://docs.djangoproject.com/zh-hans/3.0/topics/testing/overview/

Django的單元測試采用Python的標準模塊,unittest。該模塊以類的形式定義測試。

截屏2020-05-0313.31.22.png

一、測試文件命名

django中,每一個app中都有一個tests.py文件,我們在這里寫測試內容。

django的測試發(fā)現基于unittest模塊的內置測試發(fā)現。默認情況下,它將在當前工作目錄下的任何名為test* .py的文件中找到并運行測試。

顯然,tests.py是符合test* .py命名規(guī)范的。

如果我們后續(xù)的測試越來越多,可能在一個文件中寫不下,也可以寫在多個測試文件中。例如

  • test_models.py
  • test_views.py
  • test_utils.py

二、編寫測試用例

django的測試用例都繼承 django.test.TestCase, 這個類本身繼承python內置的unittest.TestCase

from django.test import TestCase
from myapp.models import Animal

class AnimalTestCase(TestCase):
    def setUp(self):
        Animal.objects.create(name="lion", sound="roar")
        Animal.objects.create(name="cat", sound="meow")

    def test_animals_can_speak(self):
        lion = Animal.objects.get(name="lion")
        cat = Animal.objects.get(name="cat")
        self.assertEqual(lion.speak(), 'The lion says "roar"')
        self.assertEqual(cat.speak(), 'The cat says "meow"')
  1. 這里的. setUp()是測試用例的配置函數,是可選的,一般用來準備數據配置。

  2. 測試函數應該以test開頭,如這里的test_animals_can_speak
    這里的測試函數中有兩個assertEqual測試

三、運行測試

編寫測試后,我們就可以運行測試了。通過命令

>>> ./manage.py test

或者

>>> python manager.py test

可以運行所有的測試用例。

也可以運行指定的模塊,,函數

>>> ./manager.py test animals 
# 僅運行運行 animals 模塊的測試用例

四、測試數據庫

當我們要測試models中的模型時,創(chuàng)建測試數據是必不可少的
django模型測試 | Model測試將不會使用“實際”(生產)數據庫。將為測試創(chuàng)建單獨的空白數據庫。

無論測試是通過還是失敗,都將在執(zhí)行所有測試后破壞測試數據庫。

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容