教程
Please Learn How To Write Tests in Python… • Pytest Tutorial - YouTube
代码笔记
笔记大纲
1) 基础与快速上手
- 测试文件命名:以
test_开头或以_test结尾的文件会被 pytest 自动发现。 - 用法示例:
pytest -q、pytest path/to/test_file.py - 断言:直接使用
assert来验证期望结果。
2) 逐课摘要
- Lesson1(断言基础):使用简单的
assert验证函数返回值;学习如何运行单个测试文件。 - Lesson2(单元测试 & 异常测试):测试函数正确性与边界条件;使用
pytest.raises(...)断言异常(例如除以 0 的处理)。 - Lesson3(fixture:setup):使用
@pytest.fixture提供测试所需的对象实例,保证每个测试使用独立资源,避免交叉污染。 - Lesson4(fixture teardown / yield):fixture 可使用
yield在yield之后编写清理代码(相当于 teardown),例如清空状态。 - Lesson5(参数化测试):使用
@pytest.mark.parametrize一次性传入多组输入/期望,批量测试函数行为。 - Lesson6(mock HTTP):使用
pytest-mock的mocker.patch模拟requests.get,避免真实网络请求;通过return_value或side_effect控制响应行为。 - Lesson7(mock DB):模拟数据库连接(如 patch
sqlite3.connect)、检查cursor.execute是否被正确调用,验证 SQL 生成逻辑。 - Lesson8(依赖注入 & spec):用
mocker.Mock(spec=APIClient)创建受限接口的 mock,注入到服务中测试业务逻辑,并断言对依赖的调用参数。
3) 常用命令速查 
- 运行全部测试:
pytest -q - 运行单个文件:
pytest path/to/test_file.py - 只运行匹配关键字的测试:
pytest -k "关键字" - 显示详细日志:
pytest -vv
备注:更多实践与命令记录见
lesson/pytest_note.ipynb(笔记式示例与命令)。