用 Python 模拟 API 的 3 种新方法
用 Python 模拟 API 的 3 种新方法
原文:https://medium.com/hackernoon/3-new-ways-to-mock-out-apis-in-python-c12510c30d79
Getting your tests right can be crucial
在我关于主题的上一篇博客中,我谈到了如何使用requests_mock
模拟对 REST APIs 的快速而简单的响应。
- 返回大量响应,如 CSV 报告
- 返回二进制文件,如图像
- 通过回调动态响应
我放在一起的是一个新的(beta)包,用于在单元测试和 Python 请求适配器 API 之间创建一个简单的桥梁。
这个包叫做 requests-staticmock,你可以在 GitHub 和 PyPi 找到代码。
它提供了 3 种模拟 API 响应的新方法。
模式 1:将一个 API 模仿成一组文件
考虑这个场景,您想要测试您开发的一个类,它
最简单的形式是,您可以使用上下文管理器将静态资产适配器注入到请求会话中。
如果该方法不存在,它将生成 404 响应。
这里有一个更详细的例子来说明如何使用它。
模式 2:模仿一个特定的 URL,但是也使用一个真实的实例
在这个例子中,您可能想要模拟一个特定的 API,但是保持对另一个 API 的访问。适配器注入器(和上下文管理器模式)支持会话中的特定 URL,对不匹配模式的 URL 保持默认的 HTTP 行为。
模式 3:让测试类生成响应
这种模式允许您创建一个共享类,该共享类为您可能想要测试的所有 URL 提供回调
如果该方法不存在,它将生成 404 响应。
摘要
这个库的目标是使用 Python 模拟给定 API 客户机的 HTTP APIs 变得非常简单。
我正在寻找反馈,因为这是一个早期的测试版,请在 GitHub 上提出任何问题或功能想法。