gpt4 book ai didi

ruby - 录像机不录制磁带

转载 作者:数据小太阳 更新时间:2023-10-29 06:44:15 25 4
gpt4 key购买 nike

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

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

我正在使用 Typhoeus 0.4.2 和 Hydra。我目前无法升级 Typhoeus。

相关代码:

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

...

我不知道为什么不写磁带。

最佳答案

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

VCR.configure do |vcr|
vcr.hook_into :typhoeus
end

hook_into docs列出所有选项以及哪些钩子(Hook)适用于哪些 HTTP 客户端。如果您对改进文档有任何建议以防止其他人产生这种混淆,请告诉我。

关于ruby - 录像机不录制磁带,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13665667/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com