我让VCR跳过https://api.github.com/users/lapaty/starred调用真正的外部API,同时继续嘲笑像https://api.github.com/repos/lgs/elasticrepo这样的类似路径
到目前为止,我尝试了以下方法,但没有取得任何成功:
VCR.configure do |c|
...
c.ignore_hosts 'api.github.com/users/lapaty/starred'
end
和
VCR.configure do |c|
...
c.ignore_request do |request|
URI(request.uri).uri == 'https://api.github.com/users/lapaty/starred'
end
end
答案 0 :(得分:1)
c.ignore_hosts 'api.github.com/users/lapaty/starred'
永远不会有效,因为api.github.com/users/lapaty/starred
不是主持人。
对于你尝试过的第二件事,URI(request.uri).uri
部分是不必要的 - 你将字符串解析为uri,然后从中获取字符串表示(这应该只给你request.uri
)。我认为应该工作:
VCR.configure do |c|
c.ignore_request do |request|
request.uri == 'https://api.github.com/users/lapaty/starred'
end
end
如果它不起作用,则表明URI字符串与您认为的不完全相同"https://api.github.com/users/lapaty/starred"
。您可以在puts
块中添加一些ignore_request
日志记录,以查看正在发出的请求,或者您可以使用debug_logger选项详细了解VCR正在做什么以及为什么要这样做。