Sha256: 60a60172122be4e326a270268bf5f46839f1e5bdec799fb10c48ef320afc6d56

Contents?: true

Size: 1.58 KB

Versions: 1

Compression:

Stored size: 1.58 KB

Contents

Feature: 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`.

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

      require 'faraday'
      require 'vcr'

      VCR.configure do |c|
        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 "body: Hello foo 1"

    Examples:
      | adapter  |
      | net_http |
      | typhoeus |

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
vcr-2.0.0.rc1 features/middleware/faraday.feature