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

2024软件测试面试刷题,这个小程序(永久刷题),靠它快速找到工作了!(刷题APP的天花板)_软件测试刷题小程序-CSDN博客文章浏览阅读2.7k次,点赞85次,收藏12次。你知不知道有这么一个软件测试面试的刷题小程序。里面包含了面试常问的软件测试基础题,web自动化测试、app自动化测试、接口测试、性能测试、自动化测试、安全测试及一些常问到的人力资源题目。最主要的是他还收集了像阿里、华为这样的大厂面试真题,还有互动交流板块……_软件测试刷题小程序https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502unittest 提供了方便的断言方法,用于验证测试结果是否符合预期,若验证失败,则会抛出 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'。如果验证失败,则会输出这个错误信息。

行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群: 759968159,里面有各种测试开发资料和技术可以一起交流哦。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 25
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值