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

Python自动化测试框架:Unittest 断言

🍅点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快

断言是编程中常用的一种验证方法,也是测试代码中最重要的部分,用于验证某个条件是否为真,验证测试结果与预期结果是否一致。

unittest 提供了方便的断言方法,用于验证测试结果是否符合预期,若验证失败,则会抛出 AssertionError 异常,并输出指定的错误信息。本文将介绍 unittest 中常用的断言方法以及使用场景。

断言的类型

在 unittest 中,常用的断言方法可以分为以下5类:相等断言、包含断言、布尔断言、类型断言、异常断言。

1、相等断言

相等断言用于验证两个值是否相等。

  • assertEqual(a, b, msg=None):验证 a 和 b 是否相等。

  • assertNotEqual(a, b, msg=None):验证 a 和 b 是否不相等。

代码实例:

import unittest class TestEqual(unittest.TestCase): def test_equal(self): self.assertEqual(1 + 2, 3)

在上述代码中,test_equal 方法使用 assertEqual 方法验证 1 + 2 是否等于 3。

2、包含断言

包含断言用于验证某个值是否包含在另一个值中。

  • assertIn(a, b, msg=None):验证 a 是否包含在 b 中。

  • assertNotIn(a, b, msg=None):验证 a 是否不包含在 b 中。

代码实例:

import unittest class TestIn(unittest.TestCase): def test_in(self): self.assertIn('e', 'hello')

在上述代码中,test_in 方法使用 assertIn 方法验证字母 'e' 是否包含在字符串 'hello' 中。

3、布尔断言

布尔断言用于验证某个值是否为真或假。

  • assertTrue(x, msg=None):验证x是否为真。

  • assertFalse(x, msg=None):验证x是否为假。

代码实例:

import unittest class TestBoolean(unittest.TestCase): def test_boolean(self): self.assertTrue(1 + 1 == 2)

在上述代码中,`test_boolean` 方法使用 `assertTrue` 方法验证 `1 + 1 == 2` 是否为真。

4、类型断言

类型断言用于验证某个值的类型是否符合预期。

  • assertIsInstance(a, b, msg=None)`:验证 `a` 是否是 `b` 类型的实例。

  • assertNotIsInstance(a, b, msg=None)`:验证 `a` 是否不是 `b` 类型的实例

代码实例:

import unittest class TestType(unittest.TestCase): def test_type(self): self.assertIsInstance('hello', str)

上述代码中,test_type 方法使用 assertIsInstance 方法验证字符串 'hello' 是否是字符串类型。如果验证失败,则会抛出 AssertionError 异常,并输出指定的错误信息。

5、异常断言

异常断言用于验证某个操作是否会抛出异常。

  • assertRaises(exc, callable, *args, **kwds):

    验证 callable(*args, **kwds) 是否会抛出 exc 类型的异常。

代码实例:

import unittest class TestException(unittest.TestCase): def test_exception(self): self.assertRaises(ZeroDivisionError, lambda: 1 / 0)

上述代码中,test_exception 方法使用 assertRaises 方法验证 lambda 函数 lambda: 1 / 0 是否会抛出 ZeroDivisionError 异常。

注意:在使用断言方法时,可以通过 msg 参数来指定断言失败时的错误信息,以便于定位问题。

代码实例:

import unittest class TestEqual(unittest.TestCase): def test_equal(self): self.assertEqual(1 + 1, 3, '1 + 1 should equal to 3')

上述代码中,使用 msg 参数来指定错误信息 '1 + 1 should equal to 3'。如果验证失败,则会输出这个错误信息。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

http://www.jsqmd.com/news/408694/

相关文章:

  • 2026年直线导轨厂家权威推荐榜:天津直线滑台、滚珠丝杠怎么安装、滚珠丝杠的选用、滚珠丝杠精度如何确定选择指南 - 优质品牌商家
  • 【预测模型】粒子群/遗传模拟退火优化BP神经网络(PSOSA-BPNN/GASA-BPNN)的高校学生国际化素质评价模型附Matlab代码
  • 【MySQL】3. MySQL库的操作
  • 一个cuda profile的原理例子
  • 具身智能的终局之战,或许不在四肢,而在心智
  • 【MySQL】4. MySQL表的操作
  • 无害化处理项目如何成功?2026年厂家综合推荐与评价,解决技术选型与运营支持痛点 - 十大品牌推荐
  • [特殊字符] 开工大吉!数据安全,从第一天就稳稳的
  • 接口测试用例的编写
  • 2026年无害化设备厂家推荐:聚焦养殖与市政场景评价,应对成本高昂与操作复杂核心问题 - 十大品牌推荐
  • iOS IPA 安装 Plist 文件生成工具
  • 农业机理模型知多少?
  • 实时会议转文字场景中dify的局限;ai平台的任务配置config设计模式:工厂模式;
  • 2026年全国加氢站设备靠谱厂家汇总 实力强口碑好且适配多场景 更具落地性 - 深度智识库
  • 2026年2月15万级城市SUV实战报告:主流车型综合性能及场景适配度对比 - 十大品牌推荐
  • 阿里云国内云与国际版的区别
  • minio-1.搭建
  • 网卡 介质 交换机
  • 2026年评价高的地图数据标注公司推荐:人工智能数据标注、医疗文本数据标注、图像数据标注、地图标注、大数据标注选择指南 - 优质品牌商家
  • 2026市场新型太空科幻机械舱制造厂家选择秘籍大揭秘,机械舱制造企业有哪些聚焦优质品牌综合实力排行 - 品牌推荐师
  • 【开题答辩全过程】以 前缘农产品销售系统的设计与实现为例,包含答辩的问题和答案
  • 深度学习毕设创新点不用愁!5个实战思路,超实用
  • 2026Deepseek知识库部署优选服务商推荐:私有化部署、模型调优、行业定制全覆盖 - 品牌2025
  • 【开题答辩全过程】以 火车票订票系统为例,包含答辩的问题和答案
  • 闲置瑞祥提货券别浪费!3种正规回收途径实测,新手也能轻松变现 - 京回收小程序
  • 工业数智化转型:视频SOP如何成生产“新基建”?
  • 如何负责一个系统的稳定性
  • 【开题答辩全过程】以 慧源慈善救助系统为例,包含答辩的问题和答案
  • 一文讲透|专科生必备的AI论文工具 —— 千笔·专业论文写作工具
  • 低对比度金属零部件 OCR 文字识别失败:问题排查、解决方案与案例实战