module VCR::RSpec::Macros
Contains macro methods to assist with VCR usage. These methods are intended to be used directly in an RSpec example group. To make these available in your RSpec example groups, extend the module in an individual example group, or configure RSpec to extend the module in all example groups.
@example
RSpec.configure do |c| c.extend VCR::RSpec::Macros end
Public Instance Methods
use_vcr_cassette(*args)
click to toggle source
Sets up a `before` and `after` hook that will insert and eject a cassette, respectively.
@example
describe "Some API Client" do use_vcr_cassette "some_api", :record => :new_episodes end
@param [(optional) String] name the cassette name; it will be inferred by the example
group descriptions if not given.
@param [(optional) Hash] options the cassette options
# File lib/vcr/test_frameworks/rspec.rb, line 28 def use_vcr_cassette(*args) options = args.last.is_a?(Hash) ? args.pop : {} name = args.first || infer_cassette_name before(:each) do VCR.insert_cassette(name, options) end after(:each) do VCR.eject_cassette end end
Private Instance Methods
infer_cassette_name()
click to toggle source
# File lib/vcr/test_frameworks/rspec.rb, line 43 def infer_cassette_name # RSpec 1 exposes #description_parts; use that if its available return description_parts.join("/") if respond_to?(:description_parts) # Otherwise use RSpec 2 metadata... group_descriptions = [] klass = self while klass.respond_to?(:metadata) && klass.metadata group_descriptions << klass.metadata[:example_group][:description] klass = klass.superclass end group_descriptions.compact.reverse.join('/') end