首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VCR不录制盒式磁带

VCR不录制盒式磁带
EN

Stack Overflow用户
提问于 2012-12-02 09:49:16
回答 1查看 6.9K关注 0票数 11

我有一个非常简单的module,我正在使用VCR用Ruby进行测试。

我已经根据文档配置了VCR,但似乎无法在cassette目录中获得要录制的磁带。我甚至将cassette目录的权限更改为777以防万一。真正奇怪的是,我已经完全删除了cassette目录,运行specs,然后创建了一个新的cassette目录。

我使用的是带有HydraTyphoeus 0.4.2。我现在不能升级台风。

相关代码:

代码语言:javascript
复制
require 'rspec'                                                                     
require 'vcr'                                                                       
require_relative File.join("..", "crawl_handler")                                   

VCR.configure do |c|                                                                
  c.cassette_library_dir = "spec/vcr_cassettes"                                     
  c.hook_into :fakeweb                                                              
  c.allow_http_connections_when_no_cassette = false                                 
end

... # => other describe statements
 describe "#handle_http_response" do                                               
    before(:each) do                                                                
      get_some_response = lambda {                                                  
        # NOTE: typhoeus v. 0.5 is MUCH less setup :)                               
        VCR.use_cassette("bme") do                                                  
          request = Typhoeus::Request.new("www.bing.com")                           
          hydra = Typhoeus::Hydra.new                                               
          hydra.queue(request)                                                      
          hydra.run                                                                 
          response = request.response                                               
        end                                                                         
      }                                                                             
      @message = @subject.handle_http_response("www.bing.com", get_some_response.call)    
    end                                                                             

    it "returns a message hash" do                                                  
      @message.should be_kind_of Hash                                               
    end  

    ...

我不知道为什么录音带没有被写出来。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-02 10:53:04

问题是您使用Typhoeus作为您的HTTP客户端,但是连接到FakeWeb,它只提供对Net::HTTP的支持。如果您配置VCR,它可以直接连接到Typhoeus (因为它提供了很好的公共API):

代码语言:javascript
复制
VCR.configure do |vcr|
  vcr.hook_into :typhoeus
end

hook_into docs列出了所有选项,以及哪些钩子可以与哪些HTTP客户端一起工作。如果您有任何改进文档的建议,以防止其他人有这种困惑,请让我知道。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13665667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档