在编写测试时,断言(assertions)是验证代码行为是否符合预期的关键工具。Pytest 提供了简单且强大的断言机制,让测试变得直观易懂。本文将带你了解如何使用 Pytest 进行基本的断言操作,帮助你快速上手。
断言是一种用于检查程序内部状态是否如预期的方法。如果断言失败(即条件不满足),则会抛出异常并报告错误信息,从而帮助开发者迅速定位问题所在。
在 Pytest 中,你可以直接使用 Python 的 assert
关键字进行断言。Pytest 对 assert
做了增强处理,能够提供更详细的失败信息,便于调试。
假设我们有一个简单的加法函数,位于 utils/common.py
文件中:
def add(a, b):
return a + b
我们将编写一个测试用例来验证这个加法函数的行为是否正确。
前面已经详细讲述如何编写一个测试用例,可参考 初探 Pytest:编写并运行你的第一个测试用例
完成一个测试用例的编写后,我们就可以继续使用断言来完善我们的测试用例
最基本的断言就是直接比较两个值是否相等:
def test_simple_comparison():
value = 5
assert value == 5 # 检查变量是否等于5
对于集合类型的数据,可以直接进行比较:
def test_list_comparison():
my_list = [1, 2, 3]
assert my_list == [1, 2, 3] # 检查列表内容是否相同
你可以使用断言来验证某个表达式的结果是否为 True
或 False
:
def test_boolean_check():
flag = True
assert flag is True # 检查变量是否为True
assert flag # 也可以这样不写表达式,flag为True则成立
有时候我们需要确保某段代码确实会抛出特定类型的异常。可以使用 pytest.raises()
来捕获异常:
import pytest
def test_exception():
with pytest.raises(ValueError):
raise ValueError("This is an error")
完成上述步骤后,就可以运行测试了!运行测试用例的方式可参考 初探 Pytest:编写并运行你的第一个测试用例
当运用用例得到一下结果:
============================= test session starts =============================
collected 1 item
tests/test_sample.py . [100%]
============================== 1 passed in 0.01s ==============================
这说明你的断言通过了,测试也通过了!
在这篇文章中,我们一起学习了如何使用 Pytest 进行基本的断言操作。通过简单的例子,我们掌握了:
assert
进行数值、列表和布尔值的比较。掌握这些基础技巧,你就可以开始为自己的项目编写有效的测试用例了。随着经验的积累,你会发现断言不仅能提高代码质量,还能让你更自信地进行开发。