python 接口断言的方法_python接口自动化(二十三)--unittest断言——上(详解)...

本文介绍了Python unittest框架中的断言方法,包括assertEqual、assertNotEqual、assertTrue、assertFalse等,用于测试代码的正确性。示例代码展示了如何使用这些断言,并给出了自定义异常输出的方法。在Python2中,可能出现中文编码问题,可通过设置编码解决。建议使用Python3进行测试工作。
摘要由CSDN通过智能技术生成

序号

断言方法

断言描述

1

assertEqual(arg1, arg2, msg=None)

验证arg1=arg2,不等则fail

2

assertNotEqual(arg1, arg2, msg=None)

验证arg1 != arg2, 相等则fail

3

assertTrue(expr, msg=None)

验证expr是true,如果为false,则fail

4

assertFalse(expr,msg=None)

验证expr是false,如果为true,则fail

5

assertIs(arg1, arg2, msg=None)

验证arg1、arg2是同一个对象,不是则fail

6

assertIsNot(arg1, arg2, msg=None)

验证arg1、arg2不是同一个对象,是则fail

7

assertIsNone(expr, msg=None)

验证expr是None,不是则fail

8

assertIsNotNone(expr, msg=None)

验证expr不是None,是则fail

9

assertIn(arg1, arg2, msg=None)

验证arg1是arg2的子串,不是则fail

10

assertNotIn(arg1, arg2, msg=None)

验证arg1不是arg2的子串,是则fail

11

assertIsInstance(obj, cls, msg=None)

验证obj是cls的实例,不是则fail

12

assertNotIsInstance(obj, cls, msg=None)

验证obj不是cls的实例,是则fail

简单的case

1、实例,写了四个测试用例,其中第四个是失败的

8278bdf7e9c6aae9d8273e51b3afebf24e8.png

2、运行结果(python3)

2e9a927c1fe1ca273bc902eb1b59b33e50d.png

python2

765182668fdc71d1b6e83ebc1f6b2480a4b.png

3、在python2中执行的结果,中文编码不对,没正常显示中文,遇到这种情况,可以自定义异常输出,python3正常。有时候也可以根据实际需要采用自定义异常输出,要灵活掌握。

参考代码

1 # coding=utf-8

2 #1.先设置编码,utf-8可支持中英文,如上,一般放在第一行3

4 #2.注释:包括记录创建时间,创建人,项目名称。5 '''6 Created on 2019-4-25

7 @author: 北京-宏哥8 Project:学习和使用unittest框架编写断言9 '''10 #3.导入unittest模块11 import unittest12 #4.编写测试用例和断言13

14 classTest(unittest.TestCase):15 def test01(self):16 '''判断 a == b'''

17 a = 1

18 b = 1

19 self.assertEqual(a, b)20 def test02(self):21 '''判断 a in b'''

22 a = "hello hongge"

23 b = "hello hongge and world!"

24 self.assertIn(a, b)25

26 def test03(self):27 '''判断 a is True'''

28 a =True29 self.assertTrue(a)30

31 def test04(self):32 '''失败案例'''

33 a = "北京-宏哥"

34 b = "hongge"

35 self.assertEqual(a, b)36

37 if __name__ == "__main__":38 unittest.main()

自定义异常输出

1、以 assertEqual 为例分析,在pycharm中通过ctrl(command)+🖱️左键我们可以定位到方法的位置:

python3

ca684db58dd078d5deebb65ba33b062d29c.png

python2

24c60910598b4608960f228357cfcf16466.png

2、python2翻译:如果两个对象不能相等,就返回失败,相当于 return: first==second

python3如果你断言的 语句正确 则什么反应都没有,但是如果你出错之后 就会报出 AssertionError 并且错误可以自己填写。

3、这里除了相比较的两个参数 first 和 second,还有第三个参数 msg=None,这个 msg 参数就是遇到异常后自定义输出信息

7ebb391f8a71ed95e0dc283db26d6dd9826.png

4、参考代码

# coding=utf-8#1.先设置编码,utf-8可支持中英文,如上,一般放在第一行

#2.注释:包括记录创建时间,创建人,项目名称。'''Created on 2019-4-25@author: 北京-宏哥

Project:学习和使用unittest框架编写断言'''#3.导入unittest模块

import unittest

#4.编写测试用例和断言classTest(unittest.TestCase):

def test01(self):'''判断 a == b'''a= 1b= 1self.assertEqual(a, b)

def test02(self):'''判断 a in b'''a= "hello hongge"b= "hello hongge and world!"self.assertIn(a, b)

def test03(self):'''判断 a is True'''a=True

self.assertTrue(a)

def test04(self):'''失败案例'''a= "北京-宏哥"b= "hongge"self.assertEqual(a, b,msg='失败原因: %s!=%s'%(a,b))if __name__ == "__main__":

unittest.main()

小结

unittest断言开篇就介绍这里,另外大家也不要纠结python2或者python3,建议小伙伴们使用python3,因为python2到2020年官方就好像不会维护了!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值