【发布时间】:2013-01-05 05:13:30
【问题描述】:
我的应用与 Google Maps 进行地理编码和 Stripe 进行支付。使用VCR 我已经模拟了对这些服务的所有请求,效果很好。但两者的库仍在javascript_include_tags 中加载。处理这个问题的最佳方法是什么,以便集成测试可以完全脱离互联网运行?
【问题讨论】:
标签: ruby-on-rails rspec shared-libraries geocoding vcr
我的应用与 Google Maps 进行地理编码和 Stripe 进行支付。使用VCR 我已经模拟了对这些服务的所有请求,效果很好。但两者的库仍在javascript_include_tags 中加载。处理这个问题的最佳方法是什么,以便集成测试可以完全脱离互联网运行?
【问题讨论】:
标签: ruby-on-rails rspec shared-libraries geocoding vcr
如果你想存根 javascript,那么为什么要首先记录交互呢?我错过了什么吗?
我很确定测试中的地理编码违反了谷歌地图服务条款。我认为您想要做的是存根地理编码本身。
从未使用过 Stripe,但我可能会采用这种方法:在规范助手中添加一个方法以在本地缓存 Stripe javascript,即,当连接可用时,下载 Stripe javascript。然后在您看来,如果 Rails.env.test? 在本地加载 javascript?。
【讨论】:
对于现在正在寻找解决方案的任何人来说,有一个不错的 gem,叫做 Puffing Billy。
类似于VCR 允许您记录和重放服务器代码发出的外部请求,此库允许您对客户端代码发出的外部请求执行相同操作。
【讨论】: