我正在使用rspec / capybara测试正在运行的应用程序。我有一条要测试的路由,应该通过提供的网址与辅助服务进行通话。
由于测试未封装应用程序,因此它们只是与之通信,因此我无法使用取消api调用的常规方法来确保其正确调用服务。
我想要的是能够给路由提供一个URL,然后让rspec从应用程序接收回信。有办法吗?
要清楚,我不希望rspec模拟/存根请求,因为它没有作为应用程序的包装程序运行。
答案 0 :(得分:0)
我想辅助服务的响应会以某种方式暴露给您。
因此,点击https://not-my-service.com?secondary-service=http://service-i-control.com
会得到包含http://service-i-control.com
的响应(部分或完整)的内容。
如果此服务已在生产环境中启动并运行,则您的secondary-service
也必须是Internet公开的,您可以考虑使用ngrok之类的东西来公开您的测试环境正在加速的本地Rack应用程序返回特定的响应。
如果您不介意使用外部服务,也可以考虑使用httpbin.org,例如:https://not-my-service.com?secondary-service=https://httpbin.org/ip
,您将返回200 OK,其中包含击中服务器的源IP。因此,您可以将该IP与https://not-my-service.com
匹配。
如果除了调用secondary-service
之外没有其他信息,那么我建议您将其作为规范的一部分: