Django unittest 單元測試


這里就不再介紹單元測試的作用了。

首先單元測試的創建方式有兩種,一種是app下面的test文件,另一種是自定義方式創建

 

 

方法一、使用test.py文件測試

from django.test import TestCase

# Create your tests here.
# -*- coding: utf-8 -*-
# __author__ = 'dandy'
from rest_framework.test import APIRequestFactory


class TestOrderAPI(TestCase):

    def setUp(self):
        self.factory = APIRequestFactory()
        print('starting')

    def test_name1(self):
        """
        測試創建訂單

        :return:
        """
        print('testing name111 ...........')
        name = 'dandy'
        self.assertEqual(name, 'dandy')
        print('test name success !!!')

    def test_age1(self):
        """
        測試創建訂單

        :return:
        """
        print('testing age111 ...........')
        age = 18
        self.assertEqual(age, 17)
        print('test age success !!!')

調用

也可以這樣調用

python3 manage.py test app01.tests

直接test會進行全局查找,而上面的命令是對於各個子測試的執行

 

方法二、自定義文件

如下格式創建文件目錄

 1 # -*- coding: utf-8 -*-
 2 # __author__ = 'dandy'
 3 
 4 from django.test import TestCase
 5 from rest_framework.test import APIRequestFactory
 6 
 7 
 8 class TestOrderAPI(TestCase):
 9 
10     def setUp(self):
11         self.factory = APIRequestFactory()
12 
13 
14     def test_name(self):
15         """
16         測試創建訂單
17 
18         :return:
19         """
20         print('testing name ...........')
21         name = 'dandy'
22         self.assertEqual(name, 'dandy')
23         print('test name success !!!')
24 
25 
26     def test_age(self):
27         """
28         測試創建訂單
29 
30         :return:
31         """
32         print('testing age ...........')
33         age = 18
34         self.assertEqual(age, 17)
35         print('test age success !!!')
View Code

執行

此時如果執行test命令

 1 from django.test import TestCase
 2 from rest_framework.test import APIRequestFactory
 3 from api.test.util.mock_data import data_create_order
 4 from api import views
 5 from backend.models import User
 6 from backend.constant import Constant
 7 
 8 class TestOrderAPI(TestCase):
 9     """
10     訂單接口測試用例
11     """
12 
13     def setUp(self):
14         self.factory = APIRequestFactory()
15 
16     def test_create(self):
17         """
18         測試創建訂單
19 
20         :return:
21         """
22         request = self.factory.post('/order/', data_create_order, format='json')
23         response = views.OrderCreateView.as_view()(request)
24         self.assertEqual(response.data['code'], 20000)
25 
26     def test_order_detail(self):
27         """
28         獲取訂單詳情
29 
30         :return:
31         """
32         request = self.factory.post('/order/', data_create_order, format='json')
33         response = views.OrderCreateView.as_view()(request)
34 
35         order_no = response.data['data']['order_no']
36         url = '/order/%(number)s/' % {'number': order_no}
37         request = self.factory.get(url)
38         response = views.OrderDetailView.as_view()(request, number=order_no)
39         self.assertEqual(response.data['code'], 20000)
實戰

更多基礎知識

https://www.jianshu.com/p/34267dd79ad6

https://docs.djangoproject.com/en/2.1/topics/testing/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM