我怎样才能使用puffing-billy和VCR来防止测试条纹的结帐创建无穷无尽的新文件?

时间:2016-02-17 21:50:55

标签: ruby-on-rails ruby rspec capybara stripe-payments

我正在使用puffing-billy / vcr / capybara / rspec来编写一个功能规范来测试我对条纹gem的使用。我的规格已经过去,但是每次运行rspec时我都无法使用缓存数据而不是创建新文件。

是否可以测试条带检出功能而无需点击网络或嘲笑其他任何内容?

2 个答案:

答案 0 :(得分:1)

您可以使用merge_cached_responses_whitelist选项合并回复。很难找出URL的正确语法,但这就是我想到的:

  • 规则必须是正则表达式。我尝试使用字符串,它冻结了我的测试。
  • 您必须在正则表达式中包含协议(例如https?:\/\/
  • 对于HTTPS网址,您必须在域
  • 之后处理端口:443

这是我在前端缓存一些Stripe响应的规则:

config.merge_cached_responses_whitelist = [
  /api\.stripe\.com(:443)*\/v1\/tokens/,
  /m\.stripe\.com(:443)*\/4/
]

另一个重要提示是puffing-billy日志不会打印到您的控制台,而是直接进入log/test.log的测试日志。如果您通过以下方式密切关注测试日志,这确实很有帮助:

tail -f log/test.log

你会看到这样的行:

puffing-billy: CACHE KEY for 'https://api.stripe.com:443/v1/tokens' is 'post_e23c813681b1bac66ef1cc6f5f1b56108a18ec52'
puffing-billy: CACHE post for 'https://api.stripe.com:443/v1/tokens'
puffing-billy: CACHE KEY for 'https://m.stripe.com:443/4' is post_8072c2c958962829d4ba630f02301dc3a51f6a6e'
puffing-billy: CACHE post for 'https://m.stripe.com:443/4'

答案 1 :(得分:-2)

Stripe的Checkout form将始终与Stripe的服务器联系。虽然您可以使用测试API密钥并使用特殊testing numbers创建卡令牌,但无法阻止Checkout与Stripe的服务器联系。