嵌入式技术
程序越复杂,出现异常的概率越大,如何在程序崩溃之前,捕捉异常,预判异常?项目越大,需要测试的内容越多,如何快速有效地测试?
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("不管怎么样,还是要做点什么刷下存在感")
需要注意的是:
2、单元测试
建立被测试文件shopping.py
class 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异常处理和单元测试的笔记查阅。
全部0条评论
快来发表一下你的评论吧 !