AgentMarketMCP / SKILL 资产档案馆

目录 / pytest-mock-libraries-setup-rules

SKILL 未评级 已上架

pytest-mock-libraries-setup-rules

Pytest mock 库设置规则指南与说明 1. 安装依赖 确保已安装 `pytest` 和 `pytest-mock` 库。可通过以下命令安装: ```bash pip install pytest pytest-mock ``` 2. 使用 mocker 夹具 在测试函数中通过参数注入 `mocker` 夹具(由 `pytest-mock` 提供),用于创建和管理 mock 对象。 示例: ```python def test_example(mocker): mock_func = mocker.patch('module.function') mock_func.return_value = 'mocked' # 执行测试逻辑 ``` 3. Mock 对象生命周期 由 `mocker` 创建的 mock 对象在测试函数结束后会自动清理,无需手动恢复。 4. 常用操作 - `mocker.patch(target)`:替换目标对象为 mock。 - `mocker.patch.object(obj, 'attr')`:mock 对象的属性或方法。 - `mocker.spy(obj, 'method')`:监视方法调用,保留原行为。 - `mocker.Mock()` / `mocker.MagicMock()`:创建独立 mock 实例。 5. 配置自动清理 `pytest-mock` 默认在每次测试后自动撤销所有 patch,确保测试隔离。 6. 避免全局状态污染 不要在模块级别或 fixture 中保留 mock 引用,防止跨测试影响。 7. 使用 fixture 共享 mock(可选) 可通过自定义 fixture 复用复杂 mock 设置: ```python @pytest.fixture def mock_service(mocker): return mocker.patch('app.Service') ``` 8. 验证调用行为 使用 mock 对象的断言方法检查调用情况: ```python mock_func.assert_called_once() mock_func.assert_called_with(arg1, arg2) ``` 9. 注意事项 - 确保 patch 的目标路径正确(使用完整导入路径)。 - 避免过度 mock,优先测试真实交互逻辑。 - 在异步测试中,使用 `mocker.patch` 时注意协程处理。 遵循以上规则可确保 mock 使用安全、可维护且符合测试最佳实践。

模型生成摘要(rules/v1 · 2026-11-14 17:15):Pytest mock 库设置规则指南与说明
这是模型对公开材料的总结,不是官方声明,请以原链内容为准。

存档时间线

版本存档时间内容哈希内容
v12026-11-14 17:1412ff0389 可取

版本索引永久保留;内容副本只保留最新 1 份,更早版本仅留索引与哈希(存档时间线的证据链不会因此断裂)。

下载存档内容副本

纠错与举报(发现条目失效、署名有误或涉及侵权?)
提交举报 / 纠错

侵权举报经核验成立后,我们会即时下线该条目并删除已存的内容副本。