gpt4 book ai didi

ruby-on-rails - VCR 正在返回 UnhandledHTTPRequestError

转载 作者:行者123 更新时间:2023-12-04 18:09:58 26 4
gpt4 key购买 nike

我有一个网站可以保存用户提交的链接。 create 操作接受一个 url,并从 html 中的 og:tags 中提取数据。该应用程序本身运行良好,但我在使用 VCR 的 RSpec 中对其进行测试时遇到了问题。

测试在没有 VCR 的情况下顺利通过,但需要很长时间(实际代码有多个 HTTP 请求)。当我尝试使用 VCR 运行测试时,出现以下错误。我该如何解决这个问题?

Failure/Error: click_button 'submit'
VCR::Error::UnhandledHTTPRequestError:
================================================================================
An HTTP request has been made that VCR does not know how to handle:
GET http://espn.go.com/golf/masters13/story/_/id/9171606

links_controller.rb

def create
@link = Link.new(params[:link])
if @link.save
@link.title_from_url(@link.url)
else
render action: "new"
end
end

链接.rb

def title_from_url(url)
if !Nokogiri::HTML(open(url)).css("meta[property='og:title']").blank?
self.title = Nokogiri::HTML(open(url)).css("meta[property='og:title']").first.attributes["content"].text
self.save
end
end

link_pages_spec.rb

require 'spec_helper'

describe 'Link' do
subject { page }
before do
visit root_path
click_link "create link"
end
describe "should be created with valid form" do
VCR.use_cassette "link/create" do
before do
fill_in "enter url", with: "http://espn.go.com/golf/masters13/story/_/id/9171606"
click_button "submit"
end
it { should have_selector('h2', text:'Adam Scott 1st Aussie to win Masters')}
end
end
end

spec/support/vcr_setup.rb

VCR.configure do |c|   
c.cassette_library_dir = 'spec/vcr_cassettes'
c.hook_into :fakeweb
end

最佳答案

我有两处错误。首先,需要通过 capybara-mechanize gem 设置我的 Capybara.current_driver = :mechanize。其次,需要将 VCR block 放在 it block 中(而不是描述)。所以下面的代码有效。

require 'spec_helper'

describe 'Link' do
subject { page }
it "should be created with valid form" do
VCR.use_cassette "link/create" do
Capybara.current_driver = :mechanize
visit root_path
click_link "create link"
fill_in "enter url", with: "http://espn.go.com/golf/masters13/story/_/id/9171606"
click_button "submit"
page.should have_selector('h2', text:'Adam Scott 1st Aussie to win Masters')
end
end
end

关于ruby-on-rails - VCR 正在返回 UnhandledHTTPRequestError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16493493/

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