django中写测试方法
时间: 2023-09-03 20:12:01 浏览: 69
Django中写测试方法的步骤如下:
1. 安装依赖库:
```
pip install django
pip install coverage
```
2. 创建测试文件:
在应用的tests目录下,创建一个名为test_xxx.py的Python文件,其中xxx为测试的功能名称。
例如,创建一个用于测试用户注册的文件test_signup.py。
3. 导入依赖库:
在测试文件中,需要导入以下依赖库:
```
from django.test import TestCase, Client
from django.urls import reverse
from django.contrib.auth.models import User
```
4. 创建测试类:
在测试文件中,创建一个继承自TestCase的测试类。
例如,创建一个名为TestSignup的测试类。
```
class TestSignup(TestCase):
def setUp(self):
self.client = Client()
self.signup_url = reverse('signup')
```
其中,setUp方法用于在每个测试运行之前执行一次,用于初始化测试环境。
5. 编写测试方法:
在测试类中,编写测试方法。
例如,编写一个名为test_signup_success的测试方法,用于测试用户注册成功的情况。
```
def test_signup_success(self):
data = {
'username': 'john',
'email': 'john@example.com',
'password1': 'password1234',
'password2': 'password1234',
}
response = self.client.post(self.signup_url, data)
self.assertEqual(response.status_code, 302)
self.assertEqual(response.url, reverse('login'))
self.assertTrue(User.objects.filter(username='john').exists())
```
其中,data为模拟用户提交的数据,client.post方法用于模拟用户提交数据的请求,assertEqual方法用于判断返回的状态码和URL是否正确,assertTrue方法用于判断用户是否成功被创建。
6. 运行测试:
在测试文件所在目录下,运行以下命令:
```
coverage run manage.py test
```
其中,coverage用于测试覆盖率的统计,run命令用于运行测试,manage.py test命令用于运行测试文件。
7. 查看测试覆盖率:
在测试文件所在目录下,运行以下命令:
```
coverage report
```
该命令会显示测试覆盖率的统计结果。