Видеомагнитофон: «В данный момент кассета не используется».при создании второй кассеты - PullRequest
0 голосов
/ 31 января 2019

Я пытаюсь выполнить тестирование функций RSpec на внешнем API.

Моя конфигурация видеомагнитофона выглядит следующим образом:

VCR.configure do |config|
  config.cassette_library_dir = 'spec/vcr'
  config.hook_into :webmock
  config.ignore_localhost = true
end

Мой тест выглядит следующим образом:

feature 'Visitor' do

  scenario 'performs an archival', :clean => false, :js => true do 
    mock_login
    visit '/dashboard'
    click_link 'Test Company'
    VCR.use_cassette('feature/archive') do
      within '.nav-app' do 
        click_button 'Quicksave' 
      end
    end
  end

  scenario 'performs a restore', :js => true do
    mock_login
    visit '/dashboard'
    click_link 'Test Company'
    VCR.use_cassette('feature/restore') do
      within '.nav-app' do 
        click_button 'Quickload' 
      end
    end
  end

end

Кассета archive создана просто отлично, однако кассета restore выдает ошибку:

An HTTP request has been made that VCR does not know how to handle:

GET http://SomeApiUrl/...

There is currently no cassette in use.

Я явно сказал VCR создать и использовать другую кассету с:

VCR.use_cassette('feature/restore')

Так что же дает?

Стоит также упомянуть, что я все еще получаю эту ошибку, даже когда я очищаю папку с кассетой и начинаю заново.

Ответы [ 2 ]

0 голосов
/ 01 февраля 2019

Оказывается, я тупой.Проблема заключалась в том, что я использовал имя файла vcr.rb для настройки видеомагнитофона;Я подумал, что не имеет значения, что он находится в моей папке spec/support, но это было не так.

Простое переименование в vcr_config.rb решило проблему прямо ...

0 голосов
/ 31 января 2019

Попробуйте передать , :record => :new_episodes в качестве аргумента use_cassete.Если вы не используете запись новых эпизодов.Он считает, что это один и тот же запрос.

...