Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

87 lines (74 sloc) 2.519 kb
Feature: Allow Unused HTTP Interactions
If set to false, this cassette option will cause VCR to raise an error
when a cassette is ejected and there are unused HTTP interactions remaining.
It verifies that all requests included in the cassette were made, and allows
VCR to function a bit like a mock object at the HTTP layer.
The option defaults to true (mostly for backwards compatibility).
Background:
Given a file named "vcr_config.rb" with:
"""ruby
require 'vcr'
VCR.configure do |c|
c.hook_into :fakeweb
c.cassette_library_dir = 'cassettes'
end
"""
And a previously recorded cassette file "cassettes/example.yml" with:
"""
---
http_interactions:
- request:
method: get
uri: http://example.com/foo
body:
encoding: UTF-8
string: ""
headers: {}
response:
status:
code: 200
message: OK
headers:
Content-Length:
- "5"
body:
encoding: UTF-8
string: Hello
http_version: "1.1"
recorded_at: Tue, 01 Nov 2011 04:58:44 GMT
recorded_with: VCR 2.0.0
"""
Scenario: Unused HTTP interactions are allowed by default
Given a file named "allowed_by_default.rb" with:
"""ruby
require 'vcr_config'
VCR.use_cassette("example") do
# no requests
end
"""
When I run `ruby allowed_by_default.rb`
Then it should pass
Scenario: Error raised if option is false and there are unused interactions
Given a file named "disallowed_with_no_requests.rb" with:
"""ruby
require 'vcr_config'
VCR.use_cassette("example", :allow_unused_http_interactions => false) do
# no requests
end
"""
When I run `ruby disallowed_with_no_requests.rb`
Then it should fail with an error like:
"""
There are unused HTTP interactions left in the cassette:
- [get http://example.com/foo] => [200 "Hello"]
"""
Scenario: No error raised if option is false and all interactions are used
Given a file named "disallowed_with_all_requests.rb" with:
"""ruby
require 'vcr_config'
VCR.use_cassette("example", :allow_unused_http_interactions => false) do
Net::HTTP.get_response(URI("http://example.com/foo"))
end
"""
When I run `ruby disallowed_with_all_requests.rb`
Then it should pass
Jump to Line
Something went wrong with that request. Please try again.