首页 > 解决方案 > Pytest BDD - 选择存根或实时 API 调用

问题描述

我正在开发一些行为驱动开发,即使用 pytest-bdd 的样式测试。我们希望重用相同的功能和或多或少相同的步骤定义来对第三方 API 进行存根和实时调用,即我们希望重用测试代码进行集成和端到端测试。

我想知道是否有关于如何在 pytest_bdd 或 pytest 中处理模拟和真实调用之间交替的约定

这个问题类似:Running pytest tests against multiple backends? 答案是添加一个解析器选项,并pytest_addoption在顶层放置一个钩子conftest.py

标签: testingpytestintegration-testingpytest-mockpytest-bdd

解决方案


选择一个存根或实时 api 调用的好方法api是添加一个带有 pytest_addoption 钩子的解析器选项。条件逻辑需要在相关测试中寻找那些选项。

This answer to a similar question是这种方法的来源,并且有更多细节:https ://stackoverflow.com/a/50686439/961659


推荐阅读