我正在使用puffing billy/vcr/capybara/rspec编写一个特性规范,测试我对条纹宝石的使用我的规范通过了,但每次运行rspec时,我都无法让puffing billy使用缓存数据,而不是创建新文件。
是否可以在不影响网络或模拟任何其他内容的情况下测试条带签出功能?

最佳答案

您可以使用merge_cached_responses_whitelist选项合并响应很难找出URL的正确语法,但我发现:
规则必须是regex。我试着用琴弦,结果我的测试被冻结了。
您不能在regex中包含协议(例如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'

09-27 07:20