【问题标题】:Mocking Stripe and AWS APIs in CodeIgniter在 CodeIgniter 中模拟 Stripe 和 AWS API
【发布时间】:2015-09-10 08:08:49
【问题描述】:

我已经为在 CodeIgniter 2.x 中构建的应用程序编写了集成测试。测试是 Selenium + PhpUnit 组合。

到目前为止,我在应用程序中使用了 Stripe 和 Amazon 的测试帐户,显然这些测试使用相同的帐户。我想知道如何为这些 API 创建 Mock 对象,以避免实时创建/删除数据。

对于 Stripe,我找不到任何 PHP 模拟库。因此,将响应和请求存根似乎是一个不错的选择。但同样,即使我在测试中使用存根代替真实数据,在特定集成测试期间的应用程序仍然需要正确的信息才能通过。我如何告诉应用程序使用假数据?

另外,我想知道在集成测试(即在 Web 应用程序的上下文中)模拟对象是否是一个好主意?

【问题讨论】:

    标签: php codeigniter selenium integration-testing stripe-payments


    【解决方案1】:

    这是 Stripe 自己开发的用于模拟 Stripe 的工具。

    https://github.com/stripe/stripe-mock

    它在您的本地机器上运行一个服务器,以类似 Stripe 的方式响应 API 调用。这将是您可以尝试进行验收测试的方法

    对于 PHP 单元测试,您最好使用 AspectMock 之类的东西 - 尽管配置有点棘手。您可以提前指定对 Stripe 资源(例如 \Stripe\Stripe::setApiKey 或 \Stripe\Customer::retrieve)的调用应该返回什么而不访问 Stripe 服务器 - 您还可以测试您的应用程序代码试图进行这些调用。您还可以模拟失败,以测试您的应用程序是否正常运行,例如,Stripe 已关闭。

    【讨论】:

      猜你喜欢
      • 2021-09-11
      • 1970-01-01
      • 2016-02-21
      • 1970-01-01
      • 2021-08-05
      • 1970-01-01
      • 2017-11-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多