概述
在编写自动化测试时,了解如何组织和管理测试用例是至关重要的。Pytest 提供了灵活的方式来定义测试函数和测试类,并支持多层次的设置(setup)和清理(teardown)机制,帮助你更高效地进行代码验证。本文将详细介绍 测试函数 和 测试类 的概念、定义、注意点以及实际操作示例,助你快速掌握这些基础知识。
什么是测试函数?
测试函数 是最基本的测试单元,在 Pytest 中通过以 test_
开头的函数名来标识。每个测试函数都是一个独立的测试案例,用于验证特定的功能或行为是否符合预期。
示例:简单的测试函数
假设我们有一个加法函数 add
,我们需要编写几个测试函数来验证其正确性:
# utils/common.py
def add(a, b):return a + b
对应的测试文件如下:
# tests/test_sample.py
from utils.common import adddef test_add_positive_numbers():assert add(2, 3) == 5def test_add_negative_numbers():assert add(-1, 1) == 0def test_add_zero():assert add(0, 0) == 0
注意事项
- 每个测试函数必须以
test_
开头,否则 Pytest 将不会识别它们。 - 测试函数应当尽可能独立且不依赖其他测试的状态。
- 使用明确的命名有助于提高代码的可读性和维护性。
什么是测试类?
当你的测试用例变得复杂或者需要共享某些数据和方法时,可以使用 测试类 来组织测试函数。测试类是一个包含多个测试函数的类,通常也命名为以 Test
开头,并且类内部的方法名应以 test_
开头。
示例:简单的测试类
继续上面的例子,如果我们希望为一组相关的测试提供一些共享的初始化逻辑,可以使用测试类:
# tests/test_sample.py
import pytest
from utils.common import addclass TestAddFunction:@classmethoddef setup_class(cls):""" 在所有测试之前运行 """print("Setup class")@classmethoddef teardown_class(cls):