用于Django测试的虚拟API

时间:2018-08-31 10:09:32

标签: django django-testing

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

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

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

您可以在此处看到更多信息:

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