django - 用于 Django 测试的虚拟 API
问题描述
我有一个可以处理本地和远程 API 预订的预订应用程序。我们的逻辑——(例如)定价和可用性——遵循两条截然不同的路径。我们显然需要测试两者。
但是针对远程 API 运行常规测试很慢。提供的测试环境可在 2-17秒内做出响应。在我的 pre_commit 测试中使用它是不可行的。即使他们加快了速度,它也永远不会很快,并且总是需要连接才能通过。
但我仍然需要测试 API 预订的内部逻辑。
是否有某种方法可以在测试运行程序中启动一个小型网络服务器(与 Django 网站完全分开),提供其 API 的参考副本。然后,我可以将其插入我们正在处理的模型中,并在本地快速查询。
处理这个问题的最佳方法是什么?
再次强调,这个参考 API 不应该是实际网站的一部分。除非有一种方法可以添加仅在测试时适用的视图。我正在寻找干净的解决方案。API 调用非常简单。我不是在这里寻找验证或类似的东西,只是针对 API 进行的预订在内部定价正确,处理可用性问题等。
解决方案
对于您的测试机器,您可以模拟 api 调用函数。
你可以在这里看到更多:
https://williambert.online/2011/07/how-to-unit-testing-in-django-with-mocking-and-patching/
推荐阅读
- excel - Microsoft Excel 使用 MDX 连接到 HANA
- python - 如何获取所有不包含数字的特定长度的单词?
- php - 通过地址栏注销后保留各个警卫登录的路线
- angular - 将两个单独的 Angular 项目合并到 apache 服务器上的一个 URL
- javascript - Javascript:为单页应用程序存储一个全局变量
- c# - 导入到 SQL Server 后在数据库中显示额外的行
- flutter - 如何正确阅读 ModalRoute.of(context).settings.arguments?
- laravel - Laravel 上传多个文件
- html - 防止文本破坏 flexbox 容器
- javascript - 使用reactjs在Safari中滚动页面后单击事件不起作用