TestCase 类提供了一些断言方法用于检查并报告测试用例成功还是失败
1.常用断言
方法 | 检查对象 | 使用频率 | 引入版本 |
---|---|---|---|
assertEqual(a, b) | a == b | 高频 | |
assertNotEqual(a, b) | a != b | 高频 | |
assertTrue(x) | bool(x) is True | 高频 | |
assertFalse(x) | bool(x) is False | 高频 | |
assertIs(a, b) | a is b | 一般 | 3.1 |
assertIsNot(a, b) | a is not b | 一般 | 3.1 |
assertIsNone(x) | x is None | 高频 | 3.1 |
assertIsNotNone(x) | x is not None | 一般 | 3.1 |
assertIn(a, b) | a in b | 高频 | 3.1 |
assertNotIn(a, b) | a not in b | 一般 | 3.1 |
assertIsInstance(a, b) | isinstance(a, b):a是否属于b的实例 | 一般 | 3.2 |
assertNotIsInstance(a, b) | not isinstance(a, b) | 一般 | 3.2 |
assertMultiLineEqual(a, b) | 字符串是否相等 | 一般 | 3.1 |
assertSequenceEqual(a, b) | 序列是否相等 | 一般 | 3.1 |
assertListEqual(a, b) | 列表是否相等 | 一般 | 3.1 |
assertTupleEqual(a, b) | 元组是否相等 | 一般 | 3.1 |
assertSetEqual(a, b) | 集合是否相等 | 一般 | 3.1 |
assertDictEqual(a, b) | 字典是否相等 | 一般 | 3.1 |
2.断言使用示例
assert_demo.py
import unittest
class assertDemo(unittest.TestCase):
def login(self,name,password):
"""登录接口请求的伪代码"""
if (name=="admin" and password == "Apass1234"):
return {'code':200,'msg':"登录成功"}
else:
return {'code': 404, 'msg': "账号或密码错误"}
def test_login_01(self):
"""验证用户名、密码正确"""
response = self.login('admin','Apass1234')
code = response['code']
self.assertEqual(code,200,msg="验证登录成功code=200")
def test_login_02(self):
"""验证用户名、密码错误"""
response = self.login('ad','123456')
code = response['code']
response_msg = response['msg']
self.assertNotEqual(code,200,msg=response_msg)
if __name__ == "__main__":
unittest.main()