Python自动化测试框架:Unittest 断言详解

发布时间:2024年01月11日

断言是编程中常用的一种验证方法,也是测试代码中最重要的部分,用于验证某个条件是否为真,验证测试结果与预期结果是否一致。

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'。如果验证失败,则会输出这个错误信息。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

同时,在这我为大家准备了一份软件测试视频教程(含面试、接口、自动化、性能测试等),就在下方,需要的可以直接去观看,也可以直接【点击文末小卡片免费领取资料文档】

软件测试视频教程观看处:

【2024最新版】Python自动化测试15天从入门到精通,10个项目实战,允许白嫖。。。

文章来源:https://blog.csdn.net/cs888zsy/article/details/135529491
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。