Django测试入门
使用Django测试框架编写单元测试和集成测试,保证代码质量。 · 难度:入门 · +15XP
为什么需要测试
自动化测试可以在代码变更后快速验证功能是否正常,减少回归缺陷。Django基于Python的unittest提供了丰富的测试工具。
测试用例结构
from django.test import TestCase
from .models import Article
class ArticleModelTest(TestCase):
@classmethod
def setUpTestData(cls):
# 在所有测试方法前执行一次
Article.objects.create(title='Test', content='Content')
def test_title_content(self):
article = Article.objects.get(id=1)
self.assertEqual(article.title, 'Test')
self.assertEqual(article.content, 'Content')测试视图
from django.test import Client
from django.urls import reverse
class ViewTest(TestCase):
def setUp(self):
self.client = Client()
def test_homepage_status(self):
response = self.client.get(reverse('home'))
self.assertEqual(response.status_code, 200)常用断言
| 断言 | 用途 |
|---|---|
| assertEqual(a, b) | 检查a==b |
| assertTrue(x) | 检查x为True |
| assertContains(response, text) | 检查响应包含文本 |
| assertTemplateUsed(response, template) | 检查使用了指定模板 |
练习提示: 补全starter_code中的测试类,添加一个测试方法验证Article创建后数据库中有1条记录。