ruby - 让 VCR 跳过 URI :

标签 ruby api testing mocking vcr

我需要 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     

最佳答案

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"。您可以在 ignore_request block 中添加一些 puts 日志记录以查看正在发出的请求,或者您可以使用 debug_logger选项以详细了解 VCR 正在做什么以及为什么这样做。

关于ruby - 让 VCR 跳过 URI :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16901323/

相关文章:

python - 每种测试方法都有不同的设置/拆卸

javascript - 如何更新此对象内的 vue 对象值

ruby-on-rails - RoR 教程 Michael Hartl 5.27

ruby - 如何在 Rspec 中找到每个测试用例所花费的时间

mysql - 如何将mysql数据库从heroku拉到本地机器

ruby-on-rails - Apipie 干扰正确的错误代码

PHP 图像优化器

php - Jenkins 通过 ssh 构建和测试

c# - 测试我的简单 WPF 应用程序

ruby-on-rails - 如何在现有范围之间重新排序