python assert断言函数

本文深入解析Python单元测试中的各种断言方法,包括assertEqual、assertTrue、assertAlmostEqual等,阐述了它们的功能、使用场景及参数说明,是进行Python代码质量控制的必备指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python assert断言是声明布尔值必须为真的判定,如果发生异常就说明表达式为假。
可以理解assert断言语句为raise-if-not,用来测试表示式,其返回值为假,就会触发异常。

self.assertEqual(a,b,msg=msg)   #判断a与.b是否一致,msg类似备注,可以为空

self.assertNotEqual(a,b,msg=msg)  #判断a与b是否不一致

self.assertTrue(a,msg=none)    #判断a是否为True

self.assertFalse(b,msg=none)   #判断b是否为false

self.assertAlmostEqual(a,b,places=none,msg=none,delta=none)   

#该判断过程有点复杂,判断过程如下

注:places与delta不能同时存在,否则出异常

#若a==b,则直接输入正确,不判断下面的过程

#若delta有数,places为空,判断a与b的差的绝对值是否<=delta,满足则正确,否则错误

#若delta为空,places有数,判断b与a的差的绝对值,取小数places位,等于0则正确,否则错误

#若delta为空,places为空,默认赋值places=7判断

 assertAlmostEqual(2,2) 正确,

 assertAlmostEqual(5,2,delta=4) 正确

 assertAlmostEqual(5,2,delta=2) 错误

 assertAlmostEqual(2,2.005,places=1) 正确

 assertAlmostEqual(2,2.05,places=3) 错误

 self.assertNotAlmostEqual(a,b,places=none,msg=none,delta=none)  同上,但判断相反 ```

注,delta与places不能同时存在,否则抛出异常

  assertNotAlmostEqual(2,2) 错误
  assertNotAlmostEqual(a,b,delta=c)  #a不等于b 同时 a-b>c 则正确,否      则错误
  assertNotAlmostEqual(a,b,places=2)
  #a不等于b 同时|b-a|*0,01 不等于0 则正确,否则错误
  self.assertSequenceEqual  #有空在研究,源码很长
  self.assertListEqual #有空研究
  self.assertTupleEqual #有空在研究
  self.assertSetEqual #有空在研究
  self.assertIn(a,b) 判断a in b是否成立,正确则True,否则为False

例:

 assertIn(“2” in “23”)  成功
 assertIn(“1” in “23”)  失败
 self.assertNotIn(a,b) 判断a in b是否成立,不成立则True 否则 False

例:

assertIn(“2” in “23”)  失败
assertIn(“1” in “23”)  成功
self.assertIs(a,b) 判断a 与b的对象是否相同,成立则True,否则False

注,判断是否同一对象 id(a) 若id相同,则为同一对象

  a,b=1,1.0
  assertls(a,b)  失败
  a,b=1,1
  assertls(a,b)  成功
  self.assertIsNot(a,b) 判断a 与b的对象是否相同,不成立True,否则False
  self.assertDictEqual(a,b) #判断字典a和字典b是否相等,a,b为字典
  self.assertDictContainsSubset
  self.assertItemsEqual(a,b) #比较两字符串是否一致,同sorted(a)==sorted(b)
注:sorted排序,方法内部为,将a,b分别list,生成各自列表,在sorted排序在比对

self.assertMultiLineEqual(a,b) #比较a文本与b文本是否一致,即便多了个换行,也会区分

self.assertLess(a,b) #判断a<b 成立则通过,否则失败

self.assertLessEqual  #判断a<=b 成立则通过,否则失败

self.assertGreater  #判断a>b 成立则通过,否则失败

self.assertGreaterEqual  #判断a>=b 成立则通过,否则失败

self.assertIsNone(obj=””) #判断obj=None 成立则通过,否则失败

self.assertIsNotNone #判断obj=None 成立则失败,否则通过

self.assertIsInstance(a,b) #判断a的数据类型是否为b,isinstance(a,b) 成立则通过,否则失败
 
self.assertNotIsInstance  #判断同上相反

self.assertRaisesRegexp  #正则判断匹配,没仔细看,过程复杂

self.assertRegexpMatches(a,b) #正则匹配 同re.search(b,a)匹配有则成功,否则失败

注:a为匹配的正则表达式,必须字符型,b 为要匹配的内容

self.assertNotRegexpMatches #同上,判断相反

注:博客园原文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值