断言是编程中常用的一种验证方法,也是测试代码中最重要的部分,用于验证某个条件是否为真,验证测试结果与预期结果是否一致。
unittest 提供了方便的断言方法,用于验证测试结果是否符合预期,若验证失败,则会抛出 AssertionError 异常,并输出指定的错误信息。本文将介绍 unittest 中常用的断言方法以及使用场景。【文末有配套视频教程和免费的资料文档领取】
断言的类型
在 unittest 中,常用的断言方法可以分为以下5类:相等断言、包含断言、布尔断言、类型断言、异常断言。
1、相等断言
相等断言用于验证两个值是否相等。
-
assertEqual(a, b, msg=None):验证 a 和 b 是否相等。
-
assertNotEqual(a, b, msg=None):验证 a 和 b 是否不相等。
代码实例:
import unittest
class TestEqual(unittest.TestCase):
def test_equal(self):
self.assertEqual(1 + 2, 3)
在上述代码中,test_equal 方法使用 assertEqual 方法验证 1 + 2 是否等于 3。
2、包含断言
包含断言用于验证某个值是否包含在另一个值中。
-
assertIn(a, b, msg=None):验证 a 是否包含在 b 中。
-
assertNotIn(a, b, msg=None):验证 a 是否不包含在 b 中。
代码实例:
import unittest
class TestIn(unittest.TestCase):
def test_in(self):
self.assertIn('e', 'hello')
在上述代码中,test_in 方法使用 assertIn 方法验证字母 'e' 是否包含在字符串 'hello' 中。
3、布尔断言
布尔断言用于验证某个值是否为真或假。
-
assertTrue(x, msg=None)
:验证x
是否为真。 -
assertFalse(x, msg=None)
:验证x
是否为假。
代码实例:
import unittest
class TestBoolean(unittest.TestCase):
def test_boolean(self):
self.assertTrue(1 + 1 == 2)
在上述代码中,`test_boolean` 方法使用 `assertTrue` 方法验证 `1 + 1 == 2` 是否为真。
4、类型断言
类型断言用于验证某个值的类型是否符合预期。
-
assertIsInstance(a, b, msg=None)`:验证 `a` 是否是 `b` 类型的实例。
-
assertNotIsInstance(a, b, msg=None)`:验证 `a` 是否不是 `b` 类型的实例
代码实例:
import unittest
class TestType(unittest.TestCase):
def test_type(self):
self.assertIsInstance('hello', str)
上述代码中,test_type 方法使用 assertIsInstance 方法验证字符串 'hello' 是否是字符串类型。如果验证失败,则会抛出 AssertionError 异常,并输出指定的错误信息。
5、异常断言
异常断言用于验证某个操作是否会抛出异常。
-
assertRaises(exc, callable, *args, **kwds):
验证 callable(*args, **kwds) 是否会抛出 exc 类型的异常。
代码实例:
import unittest
class TestException(unittest.TestCase):
def test_exception(self):
self.assertRaises(ZeroDivisionError, lambda: 1 / 0)
上述代码中,test_exception 方法使用 assertRaises 方法验证 lambda 函数 lambda: 1 / 0 是否会抛出 ZeroDivisionError 异常。
注意:在使用断言方法时,可以通过 msg 参数来指定断言失败时的错误信息,以便于定位问题。
代码实例:
import unittest
class TestEqual(unittest.TestCase):
def test_equal(self):
self.assertEqual(1 + 1, 3, '1 + 1 should equal to 3')
上述代码中,使用 msg 参数来指定错误信息 '1 + 1 should equal to 3'。如果验证失败,则会输出这个错误信息。
最后作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些软件测试的学习资源,希望能给你前进的路上带来帮助。
视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!关注下方我的微信公众号即可自行免费领取。