跳至主要內容

单元测试

Mr.Liu小于 1 分钟

单元测试

数据库配置

为了防止影响其他功能,可以给单元测试设置一个单独的数据库

DATABASES = {
    'default': {
        'ENGINE' : 'django.db.backends.mysql',
        'HOST': 'localhost',
        'PORT': '3306',
        'NAME': 'django_db1', # 真实的数据库
        'USER': 'root',
        'PASSWORD': '123456',
        'TEST':{
            'NAME':'django_db_test' # 用于单元测试的数据库
        }
    }
}

单元测试文件

在每个APP里面,都有一个test.py​文件,可以在里面去定义测试类,并可以直接运行

from django.test import TestCase, Client
from .models import Goods


# Create your tests here.
class GoodsTestCase(TestCase):

    def test_goods_list(self):
        # 创建一个客户端
        client = Client()
        # 模拟客户端访问首页
        response = client.get('/goods/')

        # 测试,self.assertEqual接收3个参数(被测试对象,正确的测试结果,如果不正确输出什么)
        # 如果第一个参数的返回值不等于第二个参数,输出第三个参数
        self.assertEqual(
            response.status_code,
            200,
            '商品查询失败'
        )

        result = response.json()
        self.assertEqual(
            type(result),
            list,
            '商品查询结果不对'
        )


if __name__ == '__main__':
    userTestCase = GoodsTestCase()
    userTestCase.test_goods_list()