当前位置: 首页 > news >正文

手机网站 微信网站好看的扁平化网站

手机网站 微信网站,好看的扁平化网站,网站建设报价选兴田德润,网页前端制作招聘Django测试 一、今日学习内容概述 学习模块重要程度主要内容测试基础⭐⭐⭐⭐⭐TestCase、断言方法模型测试⭐⭐⭐⭐⭐模型方法、数据验证视图测试⭐⭐⭐⭐请求处理、响应验证表单测试⭐⭐⭐⭐表单验证、数据处理覆盖率测试⭐⭐⭐⭐coverage配置、报告生成 二、测试基础示例…Django测试 一、今日学习内容概述 学习模块重要程度主要内容测试基础⭐⭐⭐⭐⭐TestCase、断言方法模型测试⭐⭐⭐⭐⭐模型方法、数据验证视图测试⭐⭐⭐⭐请求处理、响应验证表单测试⭐⭐⭐⭐表单验证、数据处理覆盖率测试⭐⭐⭐⭐coverage配置、报告生成 二、测试基础示例 2.1 基本测试类 # tests/test_base.py from django.test import TestCase from django.contrib.auth.models import User from .models import Articleclass ArticleTestCase(TestCase):def setUp(self):测试前准备工作# 创建测试用户self.user User.objects.create_user(usernametestuser,emailtestexample.com,passwordtestpass123)# 创建测试文章self.article Article.objects.create(titleTest Article,contentTest Content,authorself.user)def tearDown(self):测试后清理工作self.user.delete()self.article.delete()def test_article_creation(self):测试文章创建self.assertEqual(self.article.title, Test Article)self.assertEqual(self.article.author, self.user)def test_article_str_representation(self):测试文章字符串表示self.assertEqual(str(self.article), Test Article)2.2 测试工具类 # tests/test_utils.py import unittest from django.test import TestCase from .utils import calculate_reading_time, generate_slugclass UtilsTestCase(TestCase):def test_reading_time_calculation(self):测试阅读时间计算# 准备测试数据content .join([word] * 500) # 500个单词# 调用测试函数reading_time calculate_reading_time(content)# 验证结果假设每分钟阅读200个单词self.assertEqual(reading_time, 2.5)def test_slug_generation(self):测试slug生成test_cases [(Hello World, hello-world),(测试文章, ce-shi-wen-zhang),(Python Django, python-django),]for title, expected_slug in test_cases:with self.subTest(titletitle):self.assertEqual(generate_slug(title), expected_slug)三、模型测试示例 # tests/test_models.py from django.test import TestCase from django.core.exceptions import ValidationError from django.utils import timezone from .models import Article, Categoryclass ArticleModelTest(TestCase):classmethoddef setUpTestData(cls):创建测试数据cls.category Category.objects.create(nameTest Category)cls.article Article.objects.create(titleTest Article,contentTest Content,categorycls.category,statusdraft)def test_title_max_length(self):测试标题长度限制article Article.objects.get(idself.article.id)max_length article._meta.get_field(title).max_lengthself.assertEqual(max_length, 200)def test_article_label(self):测试字段标签article Article.objects.get(idself.article.id)title_label article._meta.get_field(title).verbose_nameself.assertEqual(title_label, 标题)def test_publish_article(self):测试文章发布功能article Article.objects.get(idself.article.id)article.publish()self.assertEqual(article.status, published)self.assertIsNotNone(article.published_at)def test_article_ordering(self):测试文章排序Article.objects.create(titleSecond Article,contentContent,categoryself.category,statuspublished)articles Article.objects.all()self.assertEqual(articles[0].title, Second Article)四、视图测试示例 # tests/test_views.py from django.test import TestCase, Client from django.urls import reverse from django.contrib.auth.models import User from .models import Articleclass ArticleViewsTest(TestCase):def setUp(self):self.client Client()self.user User.objects.create_user(usernametestuser,passwordtestpass123)self.article Article.objects.create(titleTest Article,contentTest Content,authorself.user)def test_article_list_view(self):测试文章列表视图response self.client.get(reverse(article_list))self.assertEqual(response.status_code, 200)self.assertTemplateUsed(response, articles/article_list.html)self.assertContains(response, Test Article)def test_article_detail_view(self):测试文章详情视图response self.client.get(reverse(article_detail, args[self.article.id]))self.assertEqual(response.status_code, 200)self.assertTemplateUsed(response, articles/article_detail.html)self.assertEqual(response.context[article], self.article)def test_create_article_view(self):测试创建文章视图self.client.login(usernametestuser, passwordtestpass123)response self.client.post(reverse(article_create), {title: New Article,content: New Content,})self.assertEqual(response.status_code, 302) # 重定向self.assertTrue(Article.objects.filter(titleNew Article).exists())五、表单测试示例 # tests/test_forms.py from django.test import TestCase from .forms import ArticleForm, CommentFormclass ArticleFormTest(TestCase):def test_article_form_valid_data(self):测试表单有效数据form ArticleForm(data{title: Test Article,content: Test Content,category: 1,status: draft})self.assertTrue(form.is_valid())def test_article_form_invalid_data(self):测试表单无效数据form ArticleForm(data{})self.assertFalse(form.is_valid())self.assertEqual(len(form.errors), 3) # title, content, category 必填def test_article_form_title_max_length(self):测试标题长度限制form ArticleForm(data{title: x * 201, # 超过最大长度content: Test Content,category: 1})self.assertFalse(form.is_valid())self.assertIn(title, form.errors)六、覆盖率测试配置 6.1 安装配置 # 安装coverage pip install coverage# 运行测试并收集覆盖率数据 coverage run manage.py test# 生成覆盖率报告 coverage report coverage html6.2 配置文件 # .coveragerc [run] source . omit */migrations/**/tests/**/venv/*manage.py[report] exclude_lines pragma: no coverdef __repr__raise NotImplementedErrorif settings.DEBUGpass七、测试流程图 八、高级测试技巧 8.1 异步测试 from django.test import TestCase import asyncioclass AsyncTests(TestCase):async def test_async_view(self):测试异步视图response await self.async_client.get(/async-view/)self.assertEqual(response.status_code, 200)async def test_async_task(self):测试异步任务result await async_task()self.assertTrue(result)8.2 测试fixtures # tests/fixtures/test_data.json [{model: app.category,pk: 1,fields: {name: Test Category,description: Test Description}} ]# tests/test_with_fixtures.py class CategoryTestCase(TestCase):fixtures [test_data.json]def test_category_exists(self):测试fixture数据加载category Category.objects.get(pk1)self.assertEqual(category.name, Test Category)九、测试最佳实践 测试命名规范 文件名以test_开头测试类以Test结尾测试方法以test_开头 测试组织结构 按功能模块分组保持测试独立性避免测试间依赖 测试用例设计 包含边界条件考虑异常情况验证业务规则 性能优化 使用setUpTestData合理使用事务避免不必要的数据库操作 怎么样今天的内容还满意吗再次感谢朋友们的观看关注GZH凡人的AI工具箱回复666送您价值199的AI大礼包。最后祝您早日实现财务自由还请给个赞谢谢
http://www.hkea.cn/news/14391892/

相关文章:

  • 外贸订单的网站肥西建设局网站
  • 奇艺广州网站建设 熊掌号网站建设河南公司
  • asp.net 做网站实例用python写一个简单的网站
  • 卡地亚手表官方网站查询动漫制作专业属于什么类型专业
  • 英文建站系统遵义企业做网站
  • 网站优化注意事项南京重庆网站建设
  • 青岛菜西有做网站的吗做自己的网站的一般步骤
  • 知名室内设计网站山东网站空间
  • 网站设计模板旅游景点11页app store怎么调回中文
  • 门户网站建设方案哈尔滨建站的网站网页
  • 阿联酋网站后缀做网站为什么要用php框架
  • 网站改版数据来源表改怎么做wordpress英文版下载
  • 驻马店标准网站建设网站收录很慢
  • 网站挂马黑链检测清除工具北京企业建设网站制作
  • asp 网站名字wordpress去除无用标签
  • 百度上推广一个网站该怎么做注册公司2个人可以吗
  • 湖南网站推广营销设计聊城做网站推广地方
  • 定州三公司网站云平台网站优化
  • 山东青?u68元建网站不愁销路的小型加工厂项目年入百万
  • 做护肤品好的网站好pw域名网站
  • 网站关闭了域名备案国内空间
  • 一个网站 两个域名福建省建设继续教育网站
  • 四川省微信网站建设推广代运营电商公司
  • 中国山东网站建设营销型企业网站建设方案
  • 深圳哪家做网站网站搭建兼职
  • 商务网站怎么做推广神器
  • 备案过的网站换空间世界十大建筑设计公司排名
  • 网站整体设计风格湖南美食网站建设策划书
  • 简单aspx网站开发保山市建设厅官方网站
  • 工信部网站icp备案查询北京市保障性住房建设投资中心官方网站