我有一个预订应用程序,可以处理本地和远程API预订。我们的逻辑 - (例如)定价和可用性 - 遵循两种截然不同的途径。我们显然需要测试两者。
但是针对远程API运行常规测试很慢。提供的测试环境在2-17秒内管理响应。在我的pre_commit测试中使用它是不可行的。即使他们加快了速度,它也永远不会很快,并且总是要求连接通过。
但我仍需要测试API预订的内部逻辑。
在测试运行器中是否有某种方式,我可以启动一个小的网络服务器(与Django网站完全分开),提供其API的参考副本。然后,我可以将其插入到我们正在处理的模型中,并在本地快速查询。
处理这个问题的最佳方法是什么?
同样,我需要强调的是,此参考API不应该是实际网站的一部分。除非有一种方法可以添加仅在测试时应用的视图。我正在寻找干净的解决方案。 API调用非常简单。我不是在寻找验证或类似的东西,只是针对API的预订在内部定价正确,处理可用性问题等。
对于你的测试porpuse你可以模拟api调用函数。
你可以在这里看到更多:
https://williambert.online/2011/07/how-to-unit-testing-in-django-with-mocking-and-patching/