0


Python教程(十一):单元测试与异常捕获

目录

专栏列表

  • Python教程(一):环境搭建及PyCharm安装
  • Python 教程(二):语法与数据结构
  • Python 教程(三):字符串特性大全
  • Python 教程(四):Python运算符合集
  • Python 教程(五):理解条件语句和循环结构
  • Python 教程(六):函数式编程
  • Python 教程(七):match…case 模式匹配
  • Python 教程(八):高级特性【高逼格代码】
  • Python 教程(九):内置模块与第三方模块
  • Python教程(十):面向对象编程(OOP)

在这里插入图片描述

正文开始

如果觉得文章对您有帮助,请帮我三连+订阅,谢谢

💖💖💖


前言

在软件开发过程中,测试和异常捕获是两个非常重要的环节。测试可以帮助我们确保代码的正确性,而异常捕获则可以提高代码的健壮性和容错性。本篇文章将详细介绍Python中的测试方法和异常捕获机制,并通过实例帮助你更好地理解和应用这些知识。

一、Python中的测试

1.1 单元测试

单元测试是对软件中的最小可测试单元进行验证的测试。Python中有一个内置模块

unittest

,用于编写和运行单元测试。

1.1.1 定义测试类

首先,我们需要定义一个测试类,并继承

unittest.TestCase

复制并运行下列代码,

unittest

会自动查找继承了

unittest.TestCase

的类,并执行其中的测试方法。

import unittest

defhello(w):returnf'Hello {w}!'classTestMathOperations(unittest.TestCase):deftest_hello(self):
        self.assertEqual(hello('ziyu'),'Hello ziyu!')deftest_subtraction(self):
        self.assertEqual(5-3,1)if __name__ =='__main__':
    unittest.main()

在这里插入图片描述

1.2.1 安装
pytest
pip install pytest

在这里插入图片描述

1.2.2 编写测试

创建

pytest-demo.py

文件 ,编写测试不需要继承任何类,只需定义以

test_

开头的函数。

defhello(w):returnf'Hello {w}!'deftest_hello():assert hello('ziyu')=='Hello ziyu!'deftest_subtraction():assert5-3==1
1.2.3 运行测试

在终端运行

pytest

命令,

pytest

会自动查找并运行所有以

test_

开头的测试函数。

pytest .\test-demo\pytest-demo.py

在这里插入图片描述

二、Python中的异常捕获

何为异常:完全无法在程序运行过程中预测的
异常会让我们程序中断,不能继续运行,这就是我们通常所说的bug,bug是必须修复的。

2.1 常规代码

程序被中断,后面的代码不会被执行

print('程序开始...')
r =10/0print('打印结果:', r)print('后续逻辑。。。。')

在这里插入图片描述

2.2 异常基础

在Python中,异常是指在程序运行过程中发生的错误。我们可以使用

try

except

else

finally

关键字来捕获和处理异常。

try:# 可能发生异常的代码
    x =1/0except ZeroDivisionError as e:# 处理异常print(f"出错了: {e}")else:# 没有发生异常时执行的代码print("上面代码完美运行")finally:# 无论是否发生异常都执行的代码print("一定会执行的代码")

在这里插入图片描述

三、抛出异常(异常传播)

在Python中,

raise

是一个关键字,用于手动抛出一个异常。使用

raise

可以触发异常处理机制,这在你需要对错误条件进行显式控制时非常有用。以下是

raise

的使用:

deffoo():raise Exception('服务器内部错误')# 抛出异常defbar():print('bar ...')
    foo()# 获取到异常,但是没用使用try 。。 捕获,导致函数中断执行print('bar done')try:
    bar()except Exception as e:print(e)# 最外层捕获finally:print('程序结束了')

在这里插入图片描述

四、 自定义异常

Python的错误其实也是class

,所有的错误类型都继承自

Exception

,所以在使用except时需要注意的是,它不但捕获该类型的错误,还把其子类也“一网打尽”。

我们可以定义自己的异常类,通过继承

Exception

类实现。

classCustomError(Exception):passdefcoo():raise CustomError('网络错误。。。')try:print('自定义错误测试。。。')
    coo()except CustomError as e:print(f"捕获自定义错误: {e}")

在这里插入图片描述

标签: python pycharm 后端

本文转载自: https://blog.csdn.net/cdns_1/article/details/140851788
版权归原作者 ziyu_jia 所有, 如有侵权,请联系我们删除。

“Python教程(十一):单元测试与异常捕获”的评论:

还没有评论