编写测试的流程:
- 引入django提供的测试模块,例如TestCase;
- 引入需要测试的类或者方法;
- 自己构造一个单元测试的类,并且这个类要继承django提供的测试模板;
- def setUp(self): 测试前的准备工作,例如创建对象、连接数据库等;
- 编写功能测试,例如我要测试homepage_view这个功能,那么我就要以test_开头定义一个方法,例如def test_homepage_view(self):
单元测试的API:
function Name | Info |
---|---|
setUp | 在执行每个测试样例前被调用 |
tearDown | 在执行每个测试样例后被调用 |
setUpClass | 在每个测试类建立时被调用 |
tearDownClass | 在运行完测试类的每个样例后被调用 |
setUpTestData | 类似于setUpClass,执行速度更快 |
单元测试的请求发送
在Django.test模块中提供了Client类,这个类能够在单元测试中发送请求。
- 引入Client类,from Django.test import Client
- 在相应的测试样例中创建模拟对象,c = Client()
- 发一个带参数的get请求,c.get(’/customers/details/’, {‘name’: ‘fred’, ‘age’: 7})
Django支持的请求类型:
Post请求 post(path, data=None, content_type=MULTIPART_CONTENT, follow=False, secure=False, **extra)
Get请求 get(path, data=None, follow=False, secure=False, **extra)
Head请求 head(path, data=None, follow=False, secure=False, **extra)
Option请求 options(path, data=’’, content_type=‘application/octet-stream’, follow=False, secure=False, **extra)
Put请求 put(path, data=’’, content_type=‘application/octet-stream’, follow=False, secure=False, **extra)
Patch请求 patch(path, data=’’, content_type=‘application/octet-stream’, follow=False, secure=False, **extra)
Delete请求 delete(path, data=’’, content_type=‘application/octet-stream’, follow=False, secure=False, **extra)
Trace请求 trace(path, follow=False, secure=False, **extra)