测试用例是否测试通过是通过将预期结果与实际结果做比较来判定的,那代码中怎么来判定用例是否通过呢?在python中这种判定的方法就叫做断言,断言可以使用python的assert方法,也可以使用unittest框架提供的一系列断言方法。
unittest常用断言方法如下
方法 | 说明 |
assertEqual(arg1, arg2, msg=None) | 验证arg1=arg2,不等则fail |
assertNotEqual(arg1, arg2, msg=None) | 验证arg1 != arg2, 相等则fail |
assertTrue(expr, msg=None) | 验证expr是true,如果为false,则fail |
assertFalse(expr,msg=None) | 验证expr是false,如果为true,则fail |
assertIsNone(expr, msg=None) | 验证expr是None,不是则fail |
assertIsNotNone(expr, msg=None) | 验证expr不是None,是则fail |
assertIn(arg1, arg2, msg=None) | 验证arg1是arg2的子串,不是则fail |
assertNotIn(arg1, arg2, msg=None) | 验证arg1不是arg2的子串,是则fail |
assertIs(arg1, arg2, msg=None) | 验证arg1、arg2是同一个对象,不是则fail |
assertIsNot(arg1, arg2, msg=None) | 验证arg1、arg2不是同一个对象,是则fail |
assertGreater(arg1, arg2, msg=None) | 验证arg1大于arg2,不是则fail |
assertGreaterEqual(arg1, arg2, msg=None) | 验证arg1大于等于arg2,不是则fail |
assertLess(arg1, arg2, msg=None) | 验证arg1小于arg2,不是则fail |
assertLessEqual(arg1, arg2, msg=None) | 验证arg1小于等于arg2,不是则fail |
assertRaises(expected_exception) | 使用with语句,断言执行的代码快会抛指定异常 |
代码如下
import unittest
class Demo(unittest.TestCase):
def raise_value_error(self):
raise ValueError
def test_assert(self):
a, b = 1, 2
c = None
d = True
e = False
f = [1, 3, 4]
g = h = 5
# >>比较断言
# 断言相等
assert a + b == 3
self.assertEqual(a+b, 3)
# 断言不等
assert a + b != 4
self.assertNotEqual(a+b, 4)
# >>空值断言
# 断言非空
assert a is not None
self.assertIsNotNone(a)
# 断言为空
assert c is None
self.assertIsNone(c)
# >>布尔值断言
# 断言为True
assert d is True
self.assertTrue(d)
# 断言为False
assert e is False
self.assertFalse(e)
# >>包含断言
# 断言包含在内
assert a in f
self.assertIn(a, f)
# 断言不包含在内
assert b not in f
self.assertNotIn(b, f)
# >>对象断言
# 断言是同一个对象
assert g is h
self.assertIs(g, h)
# 断言不是同一个对象
assert a is not h
self.assertIsNot(a, h)
# >>断言预期异常
with self.assertRaises(ValueError):
self.raise_value_error()
if __name__ == '__main__':
unittest.main()
-事必有法,然后有成- 最后祝大家早日达到测试的天花板!
以下是我收集到的比较好的学习教程资源,虽然不是什么很值钱的东西,如果你刚好需要,可以留言【777】直接拿走就好了