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的类型 |
[断言常用方法]

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

python 复制代码
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()(判断两个数几乎不相等)断言时,可以校验通过。


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

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

相关推荐
kruptos4 小时前
分布式系统怎么“选主“?Raft 共识一次讲清
开发语言·分布式·php·共识算法
吴声子夜歌5 小时前
ApacheCommons——commons-cli(命令行参数解析)
java·开发语言·apache
benchmark_cc6 小时前
REST API 和 Python SDK 应该怎么选?量化交易数据接口选型实战
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
王的宝库6 小时前
Go 项目结构:从单文件到标准工程布局
开发语言·后端·golang
Tairitsu_H6 小时前
[C++] 深入理解红黑树:封装set与map
开发语言·c++·set·map·红黑树·模拟实现
泡海椒6 小时前
JQuick-Curl 性能分析:并发场景下的性能表现与调优,第三方接口调用不只要快写也要稳跑
java·开发语言·okhttp
小智老师PMP6 小时前
2026深度解析|PMP第八版与NPDP核心侧重点本质区别(管理类证书怎么选)
开发语言·分布式·算法·职场和发展·产品经理
2601_962382437 小时前
python快乐编程网络爬虫课后答案
python·网络爬虫·学习工具·课后答案·刷题app
鹏哥带你干乡墅7 小时前
优选乡墅赋能培训平台如何帮助提升乡村建设?
大数据·人工智能·python
江畔柳前堤7 小时前
前台·中台·后台:2026年AI原生时代的架构全景图
开发语言·人工智能·算法·机器学习·架构·scala·ai-native