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'。如果验证失败,则会输出这个错误信息。

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

同时,在这我为大家准备了一份软件测试视频教程(含面试、接口、自动化、性能测试等),就在下方,需要的可以直接去观看,也可以直接【点击文末小卡片免费领取资料文档】

软件测试视频教程观看处:

【2024最新版】Python自动化测试15天从入门到精通,10个项目实战,允许白嫖。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/339663.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ABeam×StartUp丨ABeam旗下德硕管理咨询(深圳)新创部门拜访「光子晶体科技」

光子晶体科技 ABeamStartUp 光子透明芯片 显示技术 光学材料 近日,ABeam 旗下德硕管理咨询(深圳)有限公司(以下简称“ABeam-SZ”)新创部门一行拜访了深圳光子晶体科技有限公司(以下简称“光子晶体科技”…

分布式引擎Elasticsearch本地部署并结合内网穿透远程访问

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

PCL 使用克拉默法则进行四点定球(C++详细过程版)

目录 一、算法原理二、代码实现三、计算结果本文由CSDN点云侠原创,PCL 使用克拉默法则进行四点定球(C++详细过程版),爬虫自重。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT生成的文章。 一、算法原理 已知空间内不共面的四个点,设其坐标为 A (…

24/1/10 qt work

1. 完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示”登录成功“,提供一个Ok按钮,用户点击Ok后,关闭登录界面,跳转到其他界面 如果账号和密码不匹配&…

ArcMap实现多行标注

地图标注是地图的重要组成部分,也是地理信息的重要表达方式​。ArcMap的符号化系统为我们添加地图标注提供了方便,但是有时我们却需要添加多行标注,今天我们一起来探索一下ArcMap中两行标注的实现方式​。 首先,我们右击目标图层…

TS 36.322 V12.0.0-PDU,格式和参数

​本文的内容主要涉及TS 36.322,版本是C00,也就是V12.0.0。

【大数据】NiFi 中的处理器(二):PutDatabaseRecord

NiFi 中的处理器(二):PutDatabaseRecord 1.基本介绍2.属性配置3.连接关系4.应用场景 1.基本介绍 PutDatabaseRecord 处理器使用指定的 RecordReader 从传入的流文件中读取(可能是多个,说数组也成)记录。这…

Springboot使用自带Logback 与 整合log4j 和 log4j2过程详解

logback 1、添加依赖 <!--spring boot依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>2、logback-spring.xml配置 <?xml version"1.0&…

CMake入门教程【高级篇】CPack打包项目Linux的deb和windows的msi

😈「CSDN主页」:传送门 😈「Bilibil首页」:传送门 😈「动动你的小手」:点赞👍收藏⭐️评论📝 文章目录 1. 什么是CPack?2. 如何使用CPack?2.1 在CMakeLists.txt中包含CPack模块2.2 设置CPack变量2.3 创建分发包3.CPack命

huggingface下载太慢的问题

解决问题&#xff1a;huggingface网站模型文件太大&#xff0c;下载太慢 方式&#xff1a; huggingface镜像站网址 使用方法3的python脚本文件内容 import os# 下载模型 os.system(huggingface-cli download --resume-download THUDM/chatglm2-6b --local-dir /home/bennie…

迅为RK3588开发板编译 Buildroot单独编译图形化界面三

第三步&#xff1a;编译 Recovery 首先在 linux 源码目录下输入以下命令进入编译的 UI 界面&#xff0c;进入之后如下所示&#xff1a; ./build.sh 然后将光标移动到第四个 recovery&#xff0c;点击回车即可开始 recovery 的编译&#xff0c;编译过程如下所示&#xff1a; 编…

SpringCloud 之HttpClient、HttpURLConnection、OkHttpClient切换源码

SpringCloud 之HttpClient、HttpURLConnection、OkHttpClient切换源码 HttpClient、HttpURLConnection、OkHttpClient区别切换HttpClient 源码分析总结切换HttpClient源码验证切换是否成功okHttpClient 切换源码分析总结 okHttpClient 切换源码同时开启 okHttp 与httpClient 会…