I'm adding an rspec hook that will allow me to switch on vcr and use the name of the current example as the cassette name.
it "should have collaborators", :vcr => :once do
# web interactions
end
config.around(:each, :vcr => :once) do |example|
VCR.use_cassette(example.name, :record => :once) do
example.call
end
end
trouble is I don't know how to get the name of the current example (example.name doesn't work).
RSpec defines a metadata
method that returns a hash with some useful information about the example. You might try:
example.metadata[:full_description]
which should return the group(s) and example name, concatenated into one string.
This seems a bit fiddly but it does the job
config.before(:each, :vcr => :once) do
group_descriptions = self.example.example_group.ancestors.map(&:description)
spec_name = [*group_descriptions.reverse, self.example.description].join("/")
VCR.insert_cassette(spec_name, :record => :once)
end
config.after(:each, :vcr => :once) do
VCR.eject_cassette
end
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With