我正在为我的Rails应用程序编写测试。我的应用程序与处理客户支付(特别是BrainTree )的外部API通信。现在,我想确保与BrainTree通信的应用程序的类正常工作,例如它正确地向BrainTree提交用户信息和其他参数。目标是只测试BrainTree和我的应用程序之间的通信是否正常。
需要注意的一点是,BrainTree有一个沙箱帐户。为了测试我的班级,我应该:
我已经准备好了特性测试,但是只测试外部API似乎很麻烦,因为它需要打开浏览器、填写表单等,在我的特性规范中,我宁愿将外部API存根,并将API测试为单元测试。请求规范看起来更高效,但js需求似乎是一个障碍。
在上面的场景中,我应该做的事情有什么最佳实践吗?
发布于 2018-03-09 22:03:58
通常,您通常不希望只为外部服务编写测试,而是为您自己的代码编写测试,该代码针对您收到的响应进行测试。
我发现从外部API中获取响应的最佳方法是VCR宝石。这将得到一个合法的响应,并将其保存在以后的运行中使用。您可以偶尔删除存储的响应,以确保持续的功能。
发布于 2018-03-09 22:24:36
另一种测试方法是使用模拟API的假服务。假Braintree宝石提供了这样的功能,为了确保正确的功能,我在其他测试中混合使用了VCR。还有很多其他的方法,但是你可以测试哪种方法适合你的需要
https://stackoverflow.com/questions/49200675
复制相似问题