Class: RSpec::Mocks::ArgumentListMatcher
- Inherits:
- 
      Object
        - Object
- RSpec::Mocks::ArgumentListMatcher
 
- Defined in:
- lib/rspec/mocks/argument_list_matcher.rb
Overview
Wrapper for matching arguments against a list of expected values. Used by the with method on a MessageExpectation:
expect(object).to receive(:message).with(:a, 'b', 3)
object.(:a, 'b', 3)
Values passed to with can be literal values or argument matchers that match against the real objects .e.g.
expect(object).to receive(:message).with(hash_including(:a => 'b'))
Can also be used directly to match the contents of any Array. This enables 3rd party mocking libs to take advantage of rspec's argument matching without using the rest of rspec-mocks.
require 'rspec/mocks/argument_list_matcher'
include RSpec::Mocks::ArgumentMatchers
arg_list_matcher = RSpec::Mocks::ArgumentListMatcher.new(123, hash_including(:a => 'b'))
arg_list_matcher.args_match?(123, :a => 'b')
This class is immutable.
Instance Method Summary collapse
- 
  
      #args_match?(*args)  ⇒ Boolean 
  
    Matches each element in the expected_argsagainst the element in the same position of the arguments passed tonew.
- 
  
      #initialize(*expected_args)  ⇒ ArgumentListMatcher 
  
    constructor
    Initializes an ArgumentListMatcherwith a collection of literal values and/or argument matchers.
Constructor Details
#initialize(*expected_args) ⇒ ArgumentListMatcher
Initializes an ArgumentListMatcher with a collection of literal values and/or argument matchers.
| 45 46 47 48 | # File 'lib/rspec/mocks/argument_list_matcher.rb', line 45 def initialize(*expected_args) @expected_args = expected_args ensure_expected_args_valid! end | 
Instance Method Details
#args_match?(*args) ⇒ Boolean
Matches each element in the expected_args against the element in the same position of the arguments passed to new.
| 57 58 59 | # File 'lib/rspec/mocks/argument_list_matcher.rb', line 57 def args_match?(*args) Support::FuzzyMatcher.values_match?(resolve_expected_args_based_on(args), args) end |