Python异常处理和单元测试简介

发布日期:2025-01-04 15:43    点击次数:76
程序越复杂,出现异常的概率越大,如何在程序崩溃之前,捕捉异常,预判异常?项目越大,需要测试的内容越多,如何快速有效地测试?1、异常处理# 异常处理,以try开始,try里面的内容,是可能发生的错误 try: weigt = float(input("输入体重:")) # 如果输入的值不符合要求,将会抛出ValueError异常 except ValueError: print("请输入数值") # 如果除数为0,将会抛出ZeroDivisionError异常 except ZeroDivisionError: print("除数不能为0") # 异常类型非常多,列出所有异常不太现实 # 对于那些没有明确列出的异常,可以用except对其捕捉 except: print("捕捉所有为止错误") # 当try里面的语句没有执行时,也就是没有异常的时候,执行else else: print("没有异常做点什么") # 无论错误是否发生,都会被执行 finally: print("不管怎么样,还是要做点什么刷下存在感") 需要注意的是:异常处理从上向下执行,如果匹配到了某种异常,后面的异常处理将不会继续执行,例如抛出了ValueError异常,ZeroDivisionError异常和except异常都不会执行如果没有捕捉到具体的异常种类,except异常将会执行,但不会给出具体的异常提示。所以,异常种类越详细,抛出异常信息越详细。仅在没有异常抛出的情况下,才会执行else,如果抛出了异常,将不会执行不管是否抛出异常,最后finally都会被执行2、单元测试建立被测试文件shopping.pyclass Shopping: def __init__(self, price, number): self.price = price self.number = number def totalPrice(self): return self.price * self.number def productQuantity(self): return self.number 建立测试文件test_shopping.py# 加入库 import unittest # 加入需要测试的类 # 如果测试文件与被测试文件在同一目录,用文件名+类名 from shopping import Shopping # 新建一个类,继承unittest库中的TestCase类 class TestShopping(unittest.TestCase): # 当进行单元测试的时候,首先会执行setUp方法 def setUp(self): # 实例化对象 self.shopList = Shopping(4, 3) # 测试totalPrice方法,必须以test_开头 def test_totalPrice(self): # assertEqual判断是否相等 self.assertEqual(self.shopList.totalPrice(), 12) def test_productQuantity(self): self.assertEqual(self.shopList.productQuantity(), 4) 断言的种类还有很多,这里只列举了一种断言:assertEqual如果测试通过如果测试不通过还可以在python终端,执行命令,对项目中所有文件进行单元测试python -m unittest 案例代码没有给出非常详细的解释,刨除了很多语法细节,可以作为一个快速掌握Python异常处理和单元测试的笔记查阅。



Powered by Fluence 中文站 @2013-2022 RSS地图 HTML地图

Copyright Powered by站群系统 © 2013-2024