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

网站微信收款二维码怎么做网站设计模板网站

网站微信收款二维码怎么做,网站设计模板网站,深圳龙华属于哪个区,企业网站与网络营销1. 本期主题:Python单元测试框架unittest详解 unittest是Python内置的单元测试框架,遵循Java JUnit的"测试驱动开发"(TDD)理念,通过继承TestCase类实现测试用例的模块化组织。本文聚焦于独立测试脚本的编写…

1. 本期主题:Python单元测试框架unittest详解

unittest是Python内置的单元测试框架,遵循Java JUnit的"测试驱动开发"(TDD)理念,通过继承TestCase类实现测试用例的模块化组织。本文聚焦于独立测试脚本的编写,暂不涉及数据库集成或参数化测试等高级场景(参数化测试建议使用parameterized包或pytest实现)。

涵盖内容

  • 基础机制:测试类与测试方法的定义规范
  • 执行流程:从脚本运行到结果输出的完整链路
  • 结果解读:通过符号标记快速定位测试问题

不涵盖内容

  • DOM操作(前端测试建议使用Selenium
  • 数据库集成测试(需结合unittest.mockpytest-fixture
  • 参数化测试(后续文章将单独讲解)

2. unittest核心机制与执行流程

2.1 测试脚本结构解析

import unittestclass CalculatorTestCase(unittest.TestCase):"""加法器测试类"""def test_add_positive(self):"""正数加法测试"""self.assertEqual(10 + 5, 15)def test_add_negative(self):"""负数加法测试"""self.assertEqual(-3 + 7, 4)if __name__ == "__main__":unittest.main(verbosity=2)  # 增加输出详细度

关键点说明

  1. 命名规范:测试类以Test结尾,测试方法以test_开头
  2. 文档字符串:类和方法建议添加说明性注释
  3. 执行参数verbosity=2可显示测试名称而非仅点号

2.2 执行结果解读

运行上述脚本将输出:

test_add_negative (__main__.CalculatorTestCase) ... ok
test_add_positive (__main__.CalculatorTestCase) ... ok----------------------------------------------------------------------
Ran 2 tests in 0.001sOK
  • OK标记:所有测试通过
  • FAIL标记:断言失败时会显示具体值(如self.assertEqual(10, 20)会输出10 != 20

3. 常用断言方法详解

3.1 基础断言

class StringTestCase(unittest.TestCase):def test_string_operations(self):# 字符串相等验证self.assertEqual("tianxin".upper(), "TIANXIN")# 字符串包含验证self.assertIn("xin", "tianxin")# 布尔值验证self.assertTrue("tianxin".startswith("tian"))self.assertFalse("tianxin".endswith("xin"))  # 实际会失败,此处仅为示例

失败案例演示

def test_false_positive(self):self.assertEqual(10, 20)  # 输出: AssertionError: 10 != 20

3.2 异常验证

class DivisionTestCase(unittest.TestCase):def test_zero_division(self):with self.assertRaises(ZeroDivisionError):5 / 0def test_invalid_type(self):with self.assertRaises(TypeError):"10" + 5  # 字符串与整数拼接会触发TypeError

应用场景:验证边界条件(如除零、类型错误)


4. 生命周期钩子:setUptearDown

4.1 层级说明与执行顺序

钩子方法执行时机适用场景
setUpModule模块首次导入时初始化全局资源(如数据库连接池)
setUpClass测试类首次实例化时类级别资源(如测试文件路径)
setUp每个测试方法执行前测试方法独占资源(如临时文件)
tearDown每个测试方法执行后清理测试残留(如删除临时文件)
tearDownClass测试类所有方法执行完毕后释放类级别资源
tearDownModule模块所有测试执行完毕后关闭全局资源

4.2 完整示例

import os
import unittestclass FileOperationTestCase(unittest.TestCase):temp_file = "temp_test.txt"@classmethoddef setUpClass(cls):print("▶ 准备测试文件...")with open(cls.temp_file, "w") as f:f.write("initial content")def setUp(self):print("  → 每个测试前重置文件内容")with open(self.temp_file, "w") as f:f.write("")  # 清空文件def test_write_content(self):with open(self.temp_file, "a") as f:f.write("line1\n")self.assertTrue(os.path.exists(self.temp_file))def test_append_content(self):with open(self.temp_file, "a") as f:f.write("line2\n")with open(self.temp_file) as f:self.assertEqual(f.read(), "line2\n")  # 验证清空操作是否生效@classmethoddef tearDownClass(cls):print("◀ 删除测试文件")os.remove(cls.temp_file) if os.path.exists(cls.temp_file) else Noneif __name__ == "__main__":unittest.main()

输出顺序

▶ 准备测试文件...→ 每个测试前重置文件内容
test_write_content ... ok→ 每个测试前重置文件内容
test_append_content ... ok
◀ 删除测试文件

5. 测试跳过机制

5.1 装饰器应用

import unittest
import platformclass PlatformTestCase(unittest.TestCase):@unittest.skipIf(platform.system() == "Windows", "Windows系统暂不支持")def test_linux_feature(self):print("仅在Linux下运行的测试")@unittest.skipUnless(hasattr(os, "symlink"), "系统不支持符号链接")def test_symlink(self):print("符号链接测试")@unittest.skip("功能重构中,暂不测试")def test_deprecated_feature(self):print("已弃用功能测试")

执行结果

s (skipped) ... skipped 'Windows系统暂不支持'
s (skipped) ... skipped '系统不支持符号链接'
s (skipped) ... skipped '功能重构中,暂不测试'

6. 总结与建议

  1. 测试设计原则
  • 每个测试方法只验证一个功能点
  • 使用有意义的测试名称(如test_add_positive而非test1
  • 优先使用setUp/tearDown而非重复代码
  1. 扩展方向
  • 数据库测试:结合unittest.mock模拟数据库连接
  • 参数化测试:使用pytest.mark.parametrizeparameterized
  • 集成测试:通过subTest实现测试数据驱动
  1. 工具链建议
  • 简单项目:直接使用unittest
  • 复杂项目:迁移至pytest(支持更简洁的语法和插件生态)
  • 持续集成:结合tox实现多Python版本测试

通过以上结构化讲解,读者可系统掌握unittest的核心用法,并逐步向更复杂的测试场景扩展。

http://www.dtcms.com/wzjs/21233.html

相关文章:

  • 网站内容及内链建设北京seo运营
  • 重庆做网站changeke一个免费的网站
  • 十大创意网站天津网站建设
  • 百度权重2的网站seo引擎优化工具
  • 微信 购物网站开发太仓seo网站优化软件
  • 假网站连接怎么做的搜索引擎优化方法包括
  • 网站移动排名什么平台推广效果最好
  • 网站建设用什么语言开发seo168小视频
  • 网站兼容视图黑河seo
  • 哪个网站做初中英语试题赚钱合肥百度搜索优化
  • 宁晋企业做网站广州网站建设费用
  • 免费设计商标的网站青岛网站建设维护
  • 怎么选择大连网站建设百度推广关键词技巧定价
  • 企业做网站的注意什么seo案例模板
  • 个人网站建设教程百度云资源
  • 网站如何引导友情链接交换源码
  • 怎么给新网站做推广北京seo网络优化师
  • 网站开发的结论近10天的时事新闻
  • 网站登陆界面psd百度搜索官方网站
  • 泉州最好的网站建设公司营销网站建设推广
  • 建站网页模板南京seo域名
  • 龙岩百度贴吧网站推广优化怎么做最好
  • 个人网站怎么做视频产品推广文案范例
  • 广告网站 源码百度站长平台快速收录
  • 水利建设与管理司网站免费视频外链生成推荐
  • 网站模板免费下载中文版怎么制作个人网页
  • 免飞网站手机免费建站系统
  • 修改wordpress的tag页上海百度搜索优化
  • dedecms官网搜狗搜索排名优化
  • 网站遇到攻击时应该怎么做网站优化是什么意思