在CodeIgniter中对Stripe和AWS API进行嘲讽。

问题描述 投票:1回答:1

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

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

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

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

php codeigniter selenium integration-testing stripe-payments
1个回答
0
投票

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

https:/github.comstripestripe-mock

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

对于PHP单元测试,你最好使用类似于 AspectMock - 虽然配置是有点棘手。你可以事先指定对Stripe资源的调用(例如:\Stripe\Stripe::setApiKey,或\Stripe\Customer::retrieve)应该返回什么而不打到Stripe服务器--你也可以测试你的应用程序代码是否试图进行这些调用。您还可以模拟失败来测试您的应用程序是否在诸如Stripe宕机的情况下表现正常。

© www.soinside.com 2019 - 2024. All rights reserved.