Ruby on rails 如何使用吹气比利和VCR防止测试条纹';从创建无休止的新文件中签出?

Ruby on rails 如何使用吹气比利和VCR防止测试条纹';从创建无休止的新文件中签出?,ruby-on-rails,ruby,rspec,capybara,stripe-payments,Ruby On Rails,Ruby,Rspec,Capybara,Stripe Payments,我正在使用puffing billy/vcr/capybara/rspec编写一个功能规范,测试我对stripe gem的使用。我的规范通过了,但每次运行rspec时,我都无法让billy使用缓存数据,而不是创建新文件 是否可以在不触碰网络或模仿其他任何东西的情况下测试stripe签出功能?stripe将始终接触stripe的服务器。虽然您可以使用测试API密钥并使用特殊创建卡令牌,但无法阻止签出联系Stripe的服务器。您可以使用合并\u缓存的\u响应\u白名单选项合并响应。很难找出URL的正

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


是否可以在不触碰网络或模仿其他任何东西的情况下测试stripe签出功能?

stripe将始终接触stripe的服务器。虽然您可以使用测试API密钥并使用特殊创建卡令牌,但无法阻止签出联系Stripe的服务器。

您可以使用
合并\u缓存的\u响应\u白名单
选项合并响应。很难找出URL的正确语法,但我发现:

  • 规则必须是正则表达式。我尝试使用字符串,但它冻结了我的测试
  • 您必须在正则表达式中包含协议(例如
    https?:\/\/
  • 对于HTTPS URL,必须在域后处理端口
    :443
以下是我在前端缓存一些条带响应的规则:

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'

录像机是在什么录制模式下运行的?如果它在
new\u剧集
中,但每次仍生成新文件,请尝试将其设置为
none
以简化调试。吹气比利应该可以做到这一点。