Pytest框架学习21--fixture总结

@pytest.fixture 是 pytest 测试框架中的一个重要特性,它用于定义测试夹具(fixture),这些夹具可以在测试函数执行前后进行一些准备工作和清理工作。通过使用 @pytest.fixture 装饰器,可以将某些初始化逻辑抽象出来,并且使得这些逻辑能够被多个测试用例共享,从而提高代码的复用性和可维护性。

作用

  1. 设置测试环境:例如配置数据库连接、初始化外部服务等。
  2. 准备测试数据:提供测试所需的数据,如用户信息、产品列表等。
  3. 模拟外部依赖:当测试难以直接访问外部系统时,可以使用 fixture 来模拟这些系统的行为。
  4. 执行特定操作:在测试前后执行某些特定操作,如临时修改配置、记录日志等。
  5. 共享资源:在不同的测试用例之间共享资源,减少资源的创建和销毁开销。

定义 Fixture

定义一个 fixture 几乎与定义普通函数相同,主要区别在于需要添加 @pytest.fixture() 装饰器。此外,为了区分测试用例,建议 fixture 的命名不要以 test_ 开头

import pytest

@pytest.fixture
def sample_data():
    return [1, 2, 3, 4