在Recurly API和实时站点之间运行测试

时间:2013-11-24 17:36:45

标签: unit-testing tdd integration-testing payment recurly

我有点问题。我正在尝试针对Recurly API进行开发,但我似乎找不到任何方法来使用测试帐户或测试网关以及实时运行的Recurly帐户。

似乎我只能这样做,就是在我运行测试时打破我们的网站。似乎不太可能是设计糟糕,但我找不到这样做的方法。还有其他人有解决方案吗?

3 个答案:

答案 0 :(得分:4)

我们通常建议创建一个仅用于开发和测试的第二个站点。然后,正如@atif建议您可以使用单独的API密钥进行测试和开发,而不必担心影响您的生产站点。这种方法的一个缺点是你需要重新创建你在测试中使用的任何计划和优惠券。

您可能需要不同级别的测试。你会想要一些实际上与我们的服务器集成的测试,创建帐户,进行订阅等,因为它们会慢一些。对于大多数测试,我会尝试遵循@ ryan1234的建议并使用stub / mock / fixtures来处理远程请求。这样可以加快测试速度。

答案 1 :(得分:2)

我会在您的代码和Recurly API调用之间创建一个接口。

所以逻辑就会出现:

应用程序代码 - >界面 - >重复API调用。

然后测试的步骤将是这样的:

  1. 对Recurly进行一次或两次安全的真实HTTP调用。
  2. 将(1)的HTTP请求输出记录到文件/字符串中。
  3. 用虚拟接口替换接口的实时实现。
  4. 让虚拟接口将(2)中的数据与运行测试时生成的数据进行比较。
  5. 如果通过虚拟界面的数据符合您的预期,那么您就是好人!
  6. 关键是真正的集成测试可能无法实现,但可以测试您是否正在为您生成正确的请求。

    然后,只要他们的API保持不变,您就可以快速准确地进行测试,而无需通过电线。

答案 2 :(得分:0)

如果您在应用程序中有更新,只需更新帮助文件,在测试时使用开发api密钥生产,当您希望站点作为实时站点工作,然后再次分别更新到生产环境。