Python - Django 单元测试基础操作
1. app 模块下添加 test.py 文件
2. test.py
from django.test import TestCase from apps.base.models import User class TestDefault(TestCase): def test_model(self): """通过表测试""" user = User.objects.create( nickname='1', openid='22', unionid='33', ) pingtai_obj = Article.objects.create(user=user, name='test', type=1) self.assertTrue(pingtai_obj) # 断言, 校验表数据结果是否符合预期, 如果参数为空会报error, 且后面内容不会执行 print('after...') def test_view(self): """通过接口测试""" data = { 'type': 1, 'name': 'testname11', 'user': 'user1', # 'mingpian_url': 'testzhicheng33', } response=self.client.post('/api/v1/article/', data=data) self.assertEqual(response.status_code, 200) # 断言, 校验状态码是否符合预期
3. settings.py, 配置测试时的临时数据库
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'a1', 'USER': 'root', 'PASSWORD': 'root', 'HOST': '127.0.0.1', 'PORT': '3306', 'OPTIONS': {'charset':'utf8mb4'}, 'TEST': { 'NAME': 'test', # 测试过程中会生成名字为test的数据库,测试结束后Django会自动删除该数据库 'CHARSET': 'utf8', 'COLLATION': 'utf8_general_ci' } } }
4. 执行测试文件
# 执行所有测试文件 python manage.py test
# 执行某个app下的测试文件 python manage.py test apps.app_name.test