首页 > 解决方案 > 用于 Django 测试的虚拟 API

问题描述

我有一个可以处理本地和远程 API 预订的预订应用程序。我们的逻辑——(例如)定价和可用性——遵循两条截然不同的路径。我们显然需要测试两者。

但是针对远程 API 运行常规测试很慢。提供的测试环境可在 2-17秒内做出响应。在我的 pre_commit 测试中使用它是不可行的。即使他们加快了速度,它也永远不会很快,并且总是需要连接才能通过。

但我仍然需要测试 API 预订的内部逻辑。

是否有某种方法可以在测试运行程序中启动一个小型网络服务器(与 Django 网站完全分开),提供其 API 的参考副本。然后,我可以将其插入我们正在处理的模型中,并在本地快速查询。

处理这个问题的最佳方法是什么?

再次强调,这个参考 API 不应该是实际网站的一部分。除非有一种方法可以添加仅在测试时适用的视图。我正在寻找干净的解决方案。API 调用非常简单。我不是在这里寻找验证或类似的东西,只是针对 API 进行的预订在内部定价正确,处理可用性问题等。

标签: djangodjango-testing

解决方案


对于您的测试机器,您可以模拟 api 调用函数。

你可以在这里看到更多:

https://williambert.online/2011/07/how-to-unit-testing-in-django-with-mocking-and-patching/


推荐阅读