Logo: Relish

  1. Sign in

Project: Vcr 2.9.2

Faraday middleware

VCR provides middleware that can be used with Faraday. You can use this as
an alternative to Faraday's built-in test adapter.

VCR will automatically insert this middleware in the Faraday stack
when you configure hook_into :faraday. However, if you want to control
where the middleware goes in the faraday stack, you can use it yourself.
The middleware should come before the Faraday HTTP adapter.

Note that when you use the middleware directly, you don't need to configure
hook_into :faraday.

Scenarios
Use Faraday middleware
Given
a file named "faraday_example.rb" with:
request_count = 0
start_sinatra_app(:port => 7777) do
  get('/:path') { "Hello #{params[:path]} #{request_count += 1}" }
end

require 'faraday'
require 'vcr'
extra_require

VCR.configure do |c|
  c.default_cassette_options = { :serialize_with => :syck }
  c.cassette_library_dir = 'cassettes'
end

conn = Faraday::Connection.new(:url => 'http://localhost:7777') do |builder|
  builder.use VCR::Middleware::Faraday
  builder.adapter :adapter
end

VCR.use_cassette('example') do
  puts "Response 1: #{conn.get('/foo').body}"
end

VCR.use_cassette('example') do
  puts "Response 2: #{conn.get('/foo').body}"
end
When
I run ruby faraday_example.rb
Then
the output should contain:
Response 1: Hello foo 1
Response 2: Hello foo 1
And
the file "cassettes/example.yml" should contain "Hello foo 1"
Examples:
adapter extra_require
net_http
typhoeus require 'typhoeus/adapters/faraday'

Last published over 4 years ago by myronmarston.