0

https://api.github.com/repos/lgs/elasticrepoのような同様のパスをモックしながら、実際の外部 API を呼び出すhttps://api.github.com/users/lapaty/starredだけをスキップするように VCR をニートします。

今まで、成功せずに次のことを試しました:

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     
4

1 に答える 1

1

c.ignore_hosts 'api.github.com/users/lapaty/starred'api.github.com/users/lapaty/starredホストではないため、決して機能しません。

2番目に試した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 が何を行っているのか、その理由を正確に把握したりできます。

于 2013-06-04T16:10:44.603 に答える