我现在调用第三方 Web 服务作为我的应用程序的一部分。我正在使用 RestClient gem 来执行此操作。有很多工具可以做同样的事情,所以这无关紧要。
我很好奇的是有足够好的测试,没有什么太花哨的,我可以模拟我的应用程序在第三方 Web 服务因任何原因不可用时如何响应。由于网络延迟/复杂性,我超过了速率限制或超时,我只想能够获取 HTTP 状态代码之类的内容并测试我的应用程序在该事件中的作用。
使用 Test::Unit 执行此操作的最佳方法是什么?现在,对第三方服务的调用被封装在我的一个控制器中。我有一个简单的模块,其中包含一些用于远程服务不同端点的包装方法。我只想确保我的应用程序在服务可用或不可用时执行正确的操作。
是否在 Test::Unit 旁边使用了一个可以“存根”执行此操作的正确方法的附加框架?显然,我不能强制网络超时,并且为了测试而开始使用 IPtables 之类的东西是不值得的。我确信这个问题已经解决了一百万次,因为如今将 Facebook 和 Twitter 等东西集成到 Web 应用程序中非常流行。当以健壮/受控的格式访问这些 API 时,您如何测试失败?