【问题标题】:Running tests against Recurly API alongside live site在实时站点旁边运行针对 Recurly API 的测试
【发布时间】:2013-11-24 17:36:44
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 如何为此设置第二个子域?我无法在 Web UI 中找到任何可以让我使用现有个人资料执行此操作的内容。
    • 大多数人只是注册第二个网站并在上面加上 -dev 或 -test 后缀。
    • 有道理。要将这两个网站都包含在您的个人资料中,您似乎需要注销,使用不同的电子邮件地址注册,然后将您的原始电子邮件地址添加为经理。
    【解决方案2】:

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

    所以逻辑会这样:

    应用程序代码 -> 接口 -> 循环 API 调用。

    那么测试的步骤是这样的:

    1. 对 Recurly 进行一两次安全的真实 HTTP 调用。
    2. 将 (1) 的 HTTP 请求输出记录到文件/字符串中。
    3. 用虚拟接口替换接口的实时实现。
    4. 让虚拟接口将 (2) 中的数据与运行测试时生成的数据进行比较。
    5. 如果通过虚拟接口的数据符合您的预期,那么您很好!

    关键点是可能无法进行真正的集成测试,但可以测试您是否在自己这边生成了正确的请求。

    那么只要他们的 API 保持不变,您就可以快速准确地进行测试,而无需走线。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2021-03-06
        • 2014-12-30
        • 2016-06-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多