美文网首页
django 测试 (一)

django 测试 (一)

作者: eeert2 | 来源:发表于2020-05-03 13:56 被阅读0次

    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的测试发现基于unittest模块的内置测试发现。默认情况下,它将在当前工作目录下的任何名为test* .py的文件中找到并运行测试。

    显然,tests.py是符合test* .py命名规范的。

    如果我们后续的测试越来越多,可能在一个文件中写不下,也可以写在多个测试文件中。例如

    • 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中的模型时,创建测试数据是必不可少的
    django模型测试 | Model测试将不会使用“实际”(生产)数据库。将为测试创建单独的空白数据库。

    无论测试是通过还是失败,都将在执行所有测试后破坏测试数据库。

    相关文章

      网友评论

          本文标题:django 测试 (一)

          本文链接:https://www.haomeiwen.com/subject/elldghtx.html