У меня есть очень простой контроллер, который берет некоторые данные из rss с помощью Feedjira. Я хочу протестировать этот контроллер, записав ответ RSS. Вот код контроллера:
def index
@news = Feedjira::Feed.fetch_and_parse URI.encode("http://news.google.com/news/feeds?q=\"#{query}\"&output=rss")
end
и мой тест спецификации:
it "should assign news feed", :vcr do
get :index
assigns(:news).entries.size.should == 6
assigns(:news).entries[0].title.should == "First item title"
end
и код для конфигурации vcd:
VCR.configure do |c|
c.cassette_library_dir = Rails.root.join("spec", "vcr")
c.hook_into :fakeweb
c.ignore_localhost = true
end
RSpec.configure do |c|
c.treat_symbols_as_metadata_keys_with_true_values = true
c.around(:each, :vcr) do |example|
name = example.metadata[:full_description].split(/\s+/, 2).join("/").underscore.gsub(/[^\w\/]+/, "_")
options = example.metadata.slice(:record, :match_requests_on).except(:example_group)
VCR.use_cassette(name, options) { example.call }
end
end
По какой-то неизвестной причине кассета видеомагнитофона не записывается в этом конкретном тесте. Все другие тесты, использующие веб-вызовы, работают, но с этим с Feedjira кажется, что vcr не обнаруживает сетевые вызовы. Почему?
VCR.configure
в spec_helper.rb - person infused   schedule 27.08.2014