2015-08-29 2 views
1

У меня установлены vcr и webmock gems.Настройка видеомагнитофона с огурцом и Capybara

функции/поддержка/vcr_setup.rb:

require 'vcr' 

VCR.configure do |c| 
    c.cassette_library_dir = 'vcr_cassettes' 
    c.hook_into :webmock 
end 

функции/step_definitions/user.rb:

VCR.use_cassette('login to shopify') do 
    Given /^I am a logged in user$/ do 
    @shop = create(:shop) 
    visit root_path 
    fill_in :shop, :with => @shop.shopify_domain 
    click_button 'Install' 
    expect(page).to have_content("We'll automatically") 
    end 
end 

Когда я запускаю свой пакет, я получаю уведомление, что я делаю HTTP-запрос. Какой шаг мне не хватает, чтобы правильно записать первую кассету, чтобы я мог повторно использовать ее для будущих тестов?

ответ

0

Попробуйте указать абсолютный путь вашей конфигурации cassette_library_dir. Как это:

c.cassette_library_dir = Rails.root.join('test', 'fixtures', 'vcr_cassettes') 

(Безотносительно правильный путь для vcr_cassettes находится в приложении)

Итак, ваш features/support/vcr_setup.rb становится так:

VCR.configure do |c| 
    c.cassette_library_dir = Rails.root.join('test', 'fixtures', 'vcr_cassettes') 
    c.hook_into :webmock 
end 
+0

Хммм. попробовал это без везения. Я чувствую, что мне не хватает одного из этапов настройки, например, требуя его где-то или чего-то. –

+0

«Убедитесь, что этот файл требуется в вашем тестовом наборе до того, как будут выполнены тесты ». - Как мне это сделать? Это просто означает, что «vcr_setup» требуется в моих файлах/step_definitions/user.rb? –

+0

Попробуйте это и посмотрите, работает ли это. Не видя всего этого, его трудно догадаться обо мне :( –