Pytest 入门:测试函数与测试类详解

概述

在编写自动化测试时,了解如何组织和管理测试用例是至关重要的。Pytest 提供了灵活的方式来定义测试函数和测试类,并支持多层次的设置(setup)和清理(teardown)机制,帮助你更高效地进行代码验证。本文将详细介绍 测试函数测试类 的概念、定义、注意点以及实际操作示例,助你快速掌握这些基础知识。

什么是测试函数?

测试函数 是最基本的测试单元,在 Pytest 中通过以 test_ 开头的函数名来标识。每个测试函数都是一个独立的测试案例,用于验证特定的功能或行为是否符合预期。

示例:简单的测试函数

假设我们有一个加法函数 add,我们需要编写几个测试函数来验证其正确性:

# utils/common.py
def add(a, b):
    return a + b

对应的测试文件如下:

# tests/test_sample.py
from utils.common import add

def test_add_positive_numbers():
    assert add(2, 3) == 5

def test_add_negative_numbers():
    assert add(-1, 1) == 0

def test_add_zero():
    assert add(0, 0) == 0

注意事项

  • 每个测试函数必须以 test_ 开头,否则 Pytest 将不会识别它们。
  • 测试函数应当尽可能独立且不依赖其他测试的状态。
  • 使用明确的命名有助于提高代码的可读性和维护性。

什么是测试类?

当你的测试用例变得复杂或者需要共享某些数据和方法时,可以使用 测试类 来组织测试函数。测试类是一个包含多个测试函数的类,通常也命名为以 Test 开头,并且类内部的方法名应以 test_ 开头。

示例:简单的测试类

继续上面的例子,如果我们希望为一组相关的测试提供一些共享的初始化逻辑,可以使用测试类:

# tests/test_sample.py
import pytest
from utils.common import add

class TestAddFunction:
    @classmethod
    def setup_class(cls):
        """ 在所有测试之前运行 """
        print("Setup class")

    @classmethod
    def teardown_class(cls):
        

你可能感兴趣的:(掌握Pytest:从新手到专家,pytest,python,自动化)