Python+Selenium+Unittest 之Unittest4(断言)

               在unittest框架的TestCase类也提供了多种断言的方法。

断言常用方法
断言方法检查内容
assertEqual(a,b)判断a是否等于b(判断两个是不是同一个值)
assertNotEqual(a, b)判断a是否不等于b(判断两个是不是同一个值)
assertTrue(a)判断a是否为True
assertFalse(a)判断a是否为False
assertIs(a, b)判断a是否is b(判断两个是不是同一个对象)
assertIsNot(a, b)判断a是否is not b(判断两个是不是同一个对象)
assertIsNone(a)判断a是否为none
assertIsNotNone(a)判断a是否不是none
assertIn(a, b)判断a是否in b
assertNotIn(a, b)判断a是否not in b
assertGreater(a, b)判断a是否大于b
assertLess(a, b)判断a是否小于b
assertGreaterEqual(a, b)判断a是否大于等于b
assertLessEqual(a, b)判断a是否小于等于b
assertAlmostEqual(a, b, places=X)判断a和b是否几乎相等,到小数点指定的X位数
assertNotAlmostEqual(a, b, places=X)判断a和b是否不几乎相等,到小数点指定的X位数
assertIsInstance(a, b)判断a是否是b的类型
assertNotIsInstance(a, b)判断a是否不是b的类型

这里把所有的都举例说明下,大家可以看下下面的例子:

import unittest


class TestAssert(unittest.TestCase):
    def test_assert(self):
        self.assertEqual(1,1)     # 判断a是否等于b
        self.assertNotEqual(1,2)  # 判断a是否不等于b
        self.assertTrue(True)      # 判断a是否为True
        self.assertFalse(False)    # 判断a是否为False
        test1 = [1,2,3]     #定义一个list为test1 
        test3 = [1,2,3]    #定义一个list为test3 
        test2 = test1      #把test1赋值给test2
        self.assertIs(test1,test2)     #判断a是否is b
        self.assertIsNot(test1,test3)  #判断a是否is not b
        self.assertIsNone(None)      #判断a是否为none
        self.assertIsNotNone("aaa")  #判断a是否不是none
        list4 = [1,2,3]      #定义一个list为list4
        self.assertIn(2,list4)      # 判断a是否in b
        self.assertNotIn(4,list4)  # 判断a是否not in b
        self.assertGreater(5,3)   #判断a是否大于b
        self.assertLess(3,5)    #判断a是否小于b
        self.assertGreaterEqual(3,3)   #判断a是否大于等于b
        self.assertLessEqual(3,5)    #判断a是否小于等于b
        self.assertAlmostEqual(3.555,3.5554,3)   #判断a和b是否几乎相等,到小数点指定的X位数
        self.assertNotAlmostEqual(3.555,3.5556,3)  #判断a和b是否不几乎相等,到小数点指定的X位数  这里第三位不相等是因为他会四舍五入到第三位,所以两个数就是3.555和3.556,这个需要注意下
        str1 = ("test")     #定义一个str1,类型为str
        self.assertIsInstance(str1,str)    #判断a是否是b的类型
        self.assertNotIsInstance(str1,int)  #判断a是否不是b的类型
        
if __name__ == '__main__':
    unittest.main()

上面的都是符合断言的内容,所以执行结果没有报错,截图为:

Tips:

1、assertEqual(a,b)和assertIs(a, b):这两个的区别实际比较简单的,assertEqual(a,b)可以理解成两个值进行比较,使用的是'=='操作符,只要两个值的内容完全一样就能断言成功;而assertIs(a, b)可以理解成是两个对象进行比较,使用的是‘is’的操作符,比如上面例子中,test1、test2、test3的值完全一样,但是因为test1和test2有个赋值的操作,所以他两进行assertIs()(判断a是否is b)断言时会校验成功,尽管3个内容一样,但是test3与test1和test2是两个对象,所以test3与test1进行assertIsNot()(判断a是否 is not b)断言时会校验成功。

2、assertAlmostEqual(a, b, places=X):这个有个注意点时,他会在你设定好的比较位数的地方进行四舍五入,比如上面的例子中3.555和3.5554比较取3位时是否相同,因为3.5554在比较前三位时,使用第四位对第三位进行了四舍五入的判断,并且正好是3,所以3.5554取前三位在四舍五入后的值是3.555.所以他两在使用assertAlmostEqual()(判断两个数几乎相等)时会断言成功。同理3.5556四舍五入后的值是3.556.所以他和3.555进行assertNotAlmostEqual()(判断两个数几乎不相等)断言时,可以校验通过。


 如果大家在使用过程中遇到了问题,可以在文章下留言,或者关注公众号:刘阿童木的进化记录,进行留言

                   下图为公众号二维码,内容会同步发出,大家可以关注一起学习!

                                

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

RAG应用开发实战(01)-RAG应用框架和解析器

1 开源解析和拆分文档 第三方的工具去对文件解析拆分,去将我们的文件内容给提取出来,并将我们的文档内容去拆分成一个小的chunk。常见的PDF word mark down, JSON、HTML。都可以有很好的一些模块去把这些文件去进行一个东西去提取。 优势 支持丰富的文…

[RK3399 Linux] 移植Linux 5.2.8内核详解

背景是在RK3399上面移植Rockchip官方提供的u-boot 2017.09 一、linux内核 1.1 源码下载 内核源码下载地址为:《https://www.kernel.org/》: 也可以到内核镜像网址下载https://mirrors.edge.kernel.org/pub/linux/kernel/,这里下载速度更快。 如果下载速度太慢,无法下载,…

2024.4.12蚂蚁庄园今日答案:豆腐在烹调时容易碎有什么办法可以避免?

原文来源:蚂蚁庄园今日答案 - 词令 蚂蚁庄园是一款爱心公益游戏,用户可以通过喂养小鸡,产生鸡蛋,并通过捐赠鸡蛋参与公益项目。用户每日完成答题就可以领取鸡饲料,使用鸡饲料喂鸡之后,会可以获得鸡蛋&…

【数学建模】机器人避障问题

已知: 正方形5的左下顶点坐标 ( 80 , 60 ) (80,60) (80,60),边长 150 150 150机器人与障碍物的距离至少超过 10 10 10个单位规定机器人的行走路径由直线段和圆弧组成,其中圆弧是机器人转弯路径。机器人不能折线转弯,转弯路径由与…

【C++算法】线性DP详解:数字三角形、最长上升子序列、最长公共子序列、最长公共子串、字符串编辑距离

文章目录 1)数字三角形1:顺推2:逆推 2)最长上升子序列1:线性DP做法2:二分优化 3)最长公共子序列4)最长公共子串5)字符串编辑距离 1)数字三角形 1&#xff1a…

git修改本地提交历史邮箱地址

1、Git(Git) 2、修改Git本地提交历史中的邮箱地址 使用 git rebase 命令进行交互式重置。 具体步骤如下:(https://git-scm.com/docs/git-rebase) 1、查看提交历史: 使用 git log 命令列出提交历史&#x…

HCIE考试第三题:业务容器化及割接

文章目录 业务容器化及割接题目和做题步骤如下3.1业务容器化及割接3.1创建CCE集群solo3.2创建NAT网关3.2.1申请EIP3.2.2创建NAT网关3.2.3添加SNAT规则3.3创建节点池3.3.1 创建namespace3.3.2创建节点池3.4 安装命令行工具kubectl3.4.1上传kubectl3.4.2上传kubeconfig配置文件3.…

Linux文件IO(3):使用文件IO进行文件的打开、关闭、读写、定位等相关操作

目录 1. 文件IO的概念 2. 文件描述符概念 3. 函数介绍 3.1 文件IO-open函数 3.2 文件IO-close函数 3.3 文件IO-read函数 3.4 文件IO-write函数 3.5 文件IO-lseek函数 4. 代码练习 4.1 要求 4.2 具体实现代码 4.3 测试结果 5. 总结 1. 文件IO的概念 posix(可移植操作系统接…

【React】路由鉴权

需求 未登录状态下,某些页面不可访问,白名单中的页面可以。未登录状态下,拦截通过修改url直接访问页面。判断是否有权访问某些页面。路由规则中每个页面都需要调用某个接口。 前提 使用的react-router-dom6 ,这里只是举例&…

HarmonyOS开发实例:【数字管家app】

一.概述 本应用是基于RK3399开发板,使用OpenHarmony3.1-Release开发的应用。通过OpenHarmony的分布式技术,使多人能够一起画画。 1.应用运行效果图: 2.分布式画板使用示意图 如上图所示,用户1、用户2在各自本地端进行…

AcWing 1111. 字母 解题思路及代码

先贴个题目&#xff1a; 简单的dfs&#xff0c;没啥难点&#xff0c;直接上代码。 #include<iostream> #include<cmath> using namespace std;const int N 30;int r, s; int ans 0; char map[N][N]; bool st[26]; int dx[4] {0, 0, -1, 1}, dy[4] {1, -1, 0, …

stack的简单实现

stack的简单实现 适配器模式stack的实现代码实现 为什么没有迭代器的实现&#xff1f;实际默认容器是deque&#xff08;了解即可&#xff09;dequedeque的优缺点 谢谢观看 适配器模式 stack和我们之前学的list 和 vector 不一样采用的适配器模式 什么叫适配器呢&#xff1f;我…

【前端Vue】Vue3+Pinia小兔鲜电商项目第5篇:整体认识和路由配置,本资源由 收集整理【附代码文档】

Vue3ElementPlusPinia开发小兔鲜电商项目完整教程&#xff08;附代码资料&#xff09;主要内容讲述&#xff1a;认识Vue3&#xff0c;使用create-vue搭建Vue3项目1. Vue3组合式API体验,2. Vue3更多的优势,1. 认识create-vue,2. 使用create-vue创建项目,1. setup选项的写法和执行…

LinkedHashMap 是如何保证返回的顺序性的?

LinkedHashMap 源码阅读 public class LinkedHashMap<K,V>extends HashMap<K,V>implements Map<K,V>先来看一下 LinkedHashMap 的继承关系&#xff0c;它继承了 HashMap&#xff0c;并且实现了 Map 接口。 LinkedHashMap 底层是 数组 链表 的形式&#xf…

Eland上传bge-base-zh-v1.5向量化模型到ElasticSearch中

最近需要做一些向量检索&#xff0c;试试ES 一、准备 系统&#xff1a;MacOS 14.3.1 ElasticSearch&#xff1a;8.13.2 Kibana&#xff1a;8.13.2 本地单机环境&#xff0c;无集群&#xff0c;也不基于Docker BGE是一个常见的文本转向量的模型&#xff0c;在很多大模型RAG应…

RK3588平台开发系列讲解(GMAC delay开发篇)

目录 RGMII Delayline 获取步骤 代码确认 节点确认 扫描 delayline 窗口 测试扫描出来的中间值 自动扫描 硬件 RGMII Delayline 获取步骤 如果你的项目具有千兆以太网功能&#xff0c;使用的是 RGMII 接口&#xff0c;只要有硬件差别&#xff0c;都需要重新做一次 delay…

今天讲讲MYSQL数据库事务怎么实现的!

目录 什么是数据库事务 Mysql如何保证原子性 Mysql如何保证持久性 MySQL怎么保证隔离性 事务隔离级别 脏读的解决 不可重复读的解决 幻读的解决 MVCC实现 Read View 那么RC、RR级别下的InnoDB快照读有什么不同&#xff1f; 什么是数据库事务 数据库事务是指一组数据…

鸿蒙让我赚到了第一笔桶金!年薪33.6W!

抢人&#xff01;抢人&#xff01;抢人&#xff01; 所谓抢滩鸿蒙&#xff0c;人才先行。鸿蒙系统火力全开后&#xff0c;抢人已成鸿蒙市场的主题词&#xff01; 智联招聘数据显示&#xff0c;春节后首周&#xff0c;鸿蒙相关职位数同比增长163%&#xff0c;是去年同期的2.6倍…

【包编译】库文件安装错位置怎么办

背景&#xff1a; 在建图的工作空间mapping中&#xff0c;编译好了GeographphicLib-2.3之后&#xff0c;对工作空间mapping进行编译&#xff0c;报错&#xff0c;找不到下面这俩。 总结&#xff1a; 原因&#xff1a;因为GeographphicLib的库文件在编译的时候没有放到默认系统…

“人工智能+数字人”,让数字技术赋能多领域智能化管理、数字化服务

AI数字人结合了语音合成、语音识别、语义理解、图像处理、虚拟形象驱动等多项AI核心技术&#xff0c;可以实现导览服务、信息播报、互动交流、业务咨询等智能化功能。 如今&#xff0c;AI数字人逐渐被政务、文旅、展馆展厅、博物馆、数字会议、金融、校园等等领域多元化应用&am…