Python代码的单元测试
单元测试的概念
-
定义:是指对软件中的最小可测试单元进行检查和验证。
-
作用:可以确保程序模块是否否和我们规范的输出,保证该模块经过修改后仍然是满足我们的需求。
单元测试的策略
如果要创建单元测试,可以遵循如下基本技巧来确保涵盖所有的测试用例。
-
逻辑检查:给定正确的、符合预期的输入,系统是否能够执行正确的计算并遵循通过代码正确的路径?给定的输入是否涵盖通过代码的所有路径?
-
边界检查:对于给定的输入,系统如何响应? 系统如何响应典型输入、边缘用例或无效输入?假设您期望输入的整数介于 3 和 7 之间。当您使用 5(典型输入)、3(边缘用例)或 9(无效输入)时,系统会如何响应?
-
错误处理:当输入中出现错误时,系统会如何响应? 是否提示用户输入其他内容? 软件是否会崩溃?
-
面向对象的检查:如果通过运行代码更改任何持久对象的状态,则该对象是否正确更新?
单元测试类的编写
-
首先编写要进行单元测试的代码。
def add(x, y): """加法函数""" return x + y def subtract(x, y): """减法函数""" return x - y def multiply(x, y): """乘法函数""" return x * y def divide(x, y): """除法函数""" if y != 0: return x / y else: return ValueError("除数不能为0")
-
编写测试工具代码。
# 测试代码应使用test_xxx的名称进行规范 # 这里使用断言assert进行模拟 # assert(断言)用于判断一个表达式,在表达式条件为 false 的时候触发异常 # 如下代码执行正常不报错,则说明函数执行符合预期 from myfunctions import divide # 一个简单的单元测试示例 def test_divide(x, y, result): r = divide(x, y) assert result == r def test_divide_error(x, y): try: divide(x, y) except ValueError: assert False
-
执行单元测试的工具代码。
单元测试执行完成,无错误输出代码执行符合预期。
Python中的单元测试类
如上的代码能够满足Python中进行单元测试的需求,但如果换一