Django(10)-项目实战-对发布会管理系统进行测试并获取测试覆盖率

本文介绍如何使用Django的`django.test`模块对一个发布会管理系统进行测试,包括测试视图、模型、数据库操作等,并详细阐述了如何获取和理解测试覆盖率,以及使用`coverage`库进行覆盖率计算。通过测试确保了系统的正确性和稳定性。
摘要由CSDN通过智能技术生成

发布会签到系统中使用django开发了发布会签到系统,
本文对该系统进行测试。

django.test

django.test是Django框架中的一个模块,提供了用于编写和运行测试的工具和类。

django.test模块包含了一些用于测试的类和函数,如:

  • TestCase:这是一个基类,用于编写Django测试用例。继承自unittest.TestCase,提供了一些额外的功能和方法,用于处理Django应用程序的测试环境。

  • SimpleTestCase:这是一个更轻量级的测试基类,适用于没有数据库或网络访问的简单测试场景。

  • Client:这是一个模拟HTTP请求的客户端类,用于在测试中模拟用户请求和验证响应结果。

  • RequestFactory:这是一个用于创建HTTP请求对象的工厂类,用于在测试中生成HTTP请求实例。

  • 其他辅助函数和装饰器,如override_settings用于在测试过程中临时覆盖Django设置,tag用于给测试用例添加标签等。

通过使用django.test模块,你可以编写单元测试、集成测试和功能测试等来验证和确保Django应用程序的正确性和稳定性。

下面是一个简单的示例代码,演示如何使用django.test模块编写一个测试用例类:

from django.test import TestCase

class MyTestCase(TestCase):
    def test_my_function(self):
        # 编写测试逻辑
        result = my_function()
        self.assertEqual(result, expected_result)

总结来说,django.test模块提供了一套用于编写和运行Django应用程序测试的工具和类,能够帮助开发者验证和确保应用程序的正确性和稳定性。

测试index视图

在这里插入图片描述

import os,django
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "guest.settings")
import django
django.setup()
from django.test import TestCase
class IndexPageTest(TestCase):
    def test_index_page_renders_index_template(self):
        response = self.client.get("/index/")
        self.assertEqual(response.status_code,200)
        self.assertTemplateUsed(response,'index.html')

测试类徐亚集成TestCase,使用client实例可以请求get和post HTTP请求
获取response后断言状态码,
并使用assertTemplateUsed方法断言该请求是否使用index.html模板

测试login视图

import os

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "guest.settings")


from django.contrib.auth.models import User
from django.test import TestCase
class LoginActionTest(TestCase):

    def setUp(self) -> None:
        User.objects.create_user("admin1","admin@mail.com","admin123456") #创建用户
    def test_add_admin(self):
        user=User.objects.get(username="admin1")#查询
        self.assertEqual(user.username,"admin1")
        self.assertEqual(user.email, "admin@mail.com")
    def test_login_action_username_password_null(self):
        """测试密码为空"""
        test_data={
   'username':'','password':''}
        response=self.client.post('/login/',data=test_data) #使用self的client可以对urls进行测试
        self.assertEqual(response.status_code,200)
        self.assertIn(b"username or password error",response.content)
    def test_error_password(self):
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值