У меня есть несколько тестов RSpec в моем проекте Rails, которые проверяют HTTP-вызовы внешнего REST API и используют кассеты VCR для записи запросов и ответов.В настоящее время моя конфигурация видеомагнитофона выглядит следующим образом:
VCR.configure do |c|
c.cassette_library_dir = 'spec/vcr_cassettes'
c.hook_into :webmock
c.configure_rspec_metadata!
end
Таким образом, правило сопоставления запросов совпадает только для метода HTTP и URI.Я хочу изменить этот параметр, чтобы он также соответствовал телу запроса:
VCR.configure do |c|
c.cassette_library_dir = 'spec/vcr_cassettes'
c.hook_into :webmock
c.configure_rspec_metadata!
c.default_cassette_options = {
:match_requests_on => [:uri, :method, :body],
}
end
, но так как у меня уже есть много тестов в моем проекте, я хотел бы сделать это постепенно, активируя это новое ограничение только для некоторых изтесты, так что остальные (со старыми кассетами) не сломаются.
Есть ли способ передать параметр в тесты RSpec, чтобы иметь пользовательское правило сопоставления запросов только для некоторых конкретных тестов или групп тестов?
Я представляю что-то вроде
it 'reverts transaction', :vcr, :body_matching => true do
# something
end
и затем динамически меняю настройки в соответствии с параметром body_matching
.