在项目开发过程中,单元测试必不可少,通过测试可以减少bug数,提升代码质量。
Django支持单元测试,在添加应用时,会自动创建tests.py文件。但在实际应用中,一般针对每个模块添加单元测试,而不是仅仅针对单个应用添加单元测试。所以,可以删除tests.py文件,添加test forms.py, test models.py, test views.py。毕竟Python设计之禅中说了Flat is better than nested
。
注意测试文件必须以test开头,否则Django将无法找到测试文件。
. .
# flavors/test_api.py
import json
from django.core.urlresolvers import reverse
from django.test import TestCase
from flavors.models import Flavor
class FlavorAPITests(TestCase):
def setUp(self):
Flavor.objects.get_or_create(title="A Title", slug="a-slug")
def test_list(self):
url = reverse("flavor_object_api")
response = self.client.get(url)
self.assertEquals(response.status_code, 200)
data = json.loads(response.content)
self.assertEquals(len(data), 1)
你可以有几种方式运行单元测试:
python manage.py test
:执行所有的测试用例python manage.py test app_name
, 执行该app的所有测试用例python manage.py test app_name.case_name
: 执行指定的测试用例