1 啥是单元测试

写好了一个项目之后,要确定各个模块是不是稳定运行,有没有bug,比如一个项目有100个路由,可以手动一个一个URL的输入,查看响应有没有毛病,但这样不符合程序员的逼格。
由此,诞生了单元测试与集成测试。

2 单元测试的配置

2.1 数据库的配置

由于单元测试可能测试模型类的增删改查,就免不了要往里面添加一些数据,但又不希望测试的数据影响现有的数据库造成影响,所以Django可以让我们配置一个测试数据库。
比如说:

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

2.2 单元测试的py文件

在每个APP里面,都有一个test.py文件,可以在里面去定义测试类,并可以直接运行
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bWC9FQzu-1578390196685)(_v_images/20200107173157406_12605.png)]

from django.test import TestCase,Client
from .models import User
# Create your tests here.
class UserTestCase(TestCase):
    # 相当于初始化方法
    def setUp(self):
    # 测试模型类
    def test_models(self):
        # 添加一个user对象
        User(
            account='account1',
            username='name1',
            gender=0
        ).save()
        # 测试,self.asserEqual接收3个参数
        #   (被测试对象,正确的测试结果,如果不正确输出什么)
        # 如果第一个参数的返回值不等于第二个参数,输出第三个参数
        self.assertEqual(
            User.objects.filter(account='account1').count(),
            '没有插入成功'
    # 测试首页的访问
    def test_index(self):
        # 创建一个客户端
        client = Client()
        # 模拟客户端访问首页
        response = client.get('/')
        # 测试首页返回的状态码
        self.assertEqual(
            response.status_code,
            200,
            'index的状态码不为200'
if __name__ == '__main__':
    userTestCase = UserTestCase()
    userTestCase.test_models()
    userTestCase.test_index()

运行效果:
在这里插入图片描述

测试开始的时候,先创建数据库
测试完成后,删除数据库

2.3 如果单元测试有错误,会怎么显示?

  • 把User.objects.filter(account=“account1”).count()的测试正确结果定义为2
  • 把首页返回的状态码的测试正确结果,定义为400
from django.test import TestCase,Client
from .models import User
# Create your tests here.
class UserTestCase(TestCase):
    # 相当于初始化方法
    def setUp(self):
    # 测试模型类
    def test_models(self):
        # 添加一个user对象
        User(
            account='account1',
            username='name1',
            gender=0
        ).save()
        # 测试,self.asserEqual接收3个参数
        #   (被测试对象,正确的测试结果,如果不正确输出什么)
        # 如果第一个参数的返回值不等于第二个参数,输出第三个参数
        self.assertEqual(
            User.objects.filter(account='account1').count(),
            '没有插入成功'
    # 测试首页的访问
    def test_index(self):
        # 创建一个客户端
        client = Client()
        # 模拟客户端访问首页
        response = client.get('/')
        # 测试首页返回的状态码
        self.assertEqual(
            response.status_code,
            400,
            'index的状态码不为200'
if __name__ == '__main__':
    userTestCase = UserTestCase()
    userTestCase.test_models()
    userTestCase.test_index()

3 简化代码

测试数据库可以不预先创建,也可以不配置,即:

DATABASES = {
    'default': {
        'ENGINE' : 'django.db.backends.mysql',
        'HOST': 'localhost',
        'PORT': '3306',
        'NAME': 'django_db1',
        'USER': 'root',
        'PASSWORD': '12345',
        # 'TEST':{
        #     'NAME':'django_db_test2' # 用于单元测试的数据库
                    1 啥是单元测试写好了一个项目之后,要确定各个模块是不是稳定运行,有没有bug,比如一个项目有100个路由,可以手动一个一个URL的输入,查看响应有没有毛病,但这样不符合程序员的逼格。由此,诞生了单元测试与集成测试。2 单元测试的配置2.1 数据库的配置由于单元测试可能测试模型类的增删改查,就免不了要往里面添加一些数据,但又不希望测试的数据影响现有的数据库造成影响,所以Django可以让...
				
资源包含文件:论文文档word+毕业答辩PPT+项目源码及数据库文件+项目截图 通过对数据流图的设计,理清了数据的流向,从而设计出测试数据管理与构建平台的各个模块。其主要功能模块有四大块:用户管理、测试用例管理、系统参数管理和任务管理。其中,用户管理负责对用户信息的注册、修改和注销,测试用例管理负责对测试集、测试项以及测试数据的进行设计和变更,系统参数管理负责后台服务参数设置操作的管理,任务信息是负责测试工程师对其所设计的测试用例以及测试数据创建、维护和执行的任务管理。 详细介绍参考:https://biyezuopin.blog.csdn.net/article/details/125456503
文章目录django测试入门案例/常见的测试问题/返回空数据/单元测试与客户端&数据库数据/测试工具的使用MDN系列教程:Django文档:其他参考测试数据库运行测试时从生产数据库中查找数据?入门案例manage.py test 的使用帮助运行测试实例verbosity=3在测试中创建测试数据setUpTestData()&setUp() django测试入门案例/常见的测试问题/返回空数据/单元测试与客户端&数据库数据/测试工具的使用 MDN系列教程: Django 测试 Dja
1.单元测试 单元测试是用来对一个模块、一个函数或者一个类来进行正确性检验的测试工作,是测试最小独立的单元模块 如果有需要,可以给项目进行单元测试,主要目的有消灭低级错误、减少和快速定位BUG、提高代码质量 2.django单元测试 我们在创建好一个APP的时候,它会在自动在APP目录创建一个tests.py文件,这个就是拿来做单元测试的 apps/users/tests.py from django.test import TestCase class MyTestCase(TestCase): 在进行网页开发时,与数据库对接是常规操作。但是编写完代码,一般一次就成功的概率不高,所以先进行一下单元测试很很有必要的。 在创建Django APP时下面的文件除了models.py以及views.py这两个重要文件之外,还会看见tests.py这个文件,这就是今天的主角。 编写测试样例 首先如果你写了单元测试样例直接运行tests.py是不行的,会报错: django.core.exce...
本文将会讨论什么是单元测试、单元测试的意义、django中是如何进行单元测试的 认识单元测试 单元测试就是用一段代码去测试另一段代码。测试的目标是软件设计的最小单位,比如函数或者一个类的方法。它的测试用例是基于白盒测试来设计的(知道程序设计的内部逻辑结构),也就是说单元测试的目的在于发现各模块内部可能存在的各种错误。 单元测试的意义
基于Django的测试用例管理系统(Test Case Management System, TCMS),是一种以Web为基础的测试管理工具。它主要用于管理测试用例的创建、执行、跟踪、统计和报告。TCMS提供的功能有用于测试计划、测试用例、测试结果等管理。可以为测试人员和项目管理人员提供准确可靠的测试信息和决策依据。 在TCMS中,测试计划是测试人员定义测试流程的地方。测试人员可以定义测试时间、测试资源、测试范围、测试版本等测试信息,并为每个计划指定测试负责人、测试人员和领导。在测试计划下,测试人员可以定义测试用例并组织测试用例。测试用例是测试的基本单元,例如测试场景、测试数据、预期结果等。测试用例可以按照模块、功能角色等分组方式进行分类和管理。 测试人员使用TCMS中的测试结果功能记录测试结果,如果用例执行失败,会记录错误并支持重新执行。TCMS还为测试人员提供了测试报告功能,测试人员可以针对所有测试进行总结和分析。测试报告提供了图表、统计数据、错误分析和性能分析等信息,这些信息有助于测试人员对测试结果进行分析和发现问题。 总之,基于Django的测试用例管理系统提供了强大和全面的测试管理功能,可以满足测试人员和项目管理人员对测试的各种需求。它能够提高整个软件开发过程中的测试效率和管理水平。