Module: RSpec::Mocks::ArgumentMatchers
- Included in:
- ExampleMethods
- Defined in:
- lib/rspec/mocks/argument_matchers.rb
Overview
ArgumentMatchers are placeholders that you can include in message expectations to match arguments against a broader check than simple equality.
With the exception of any_args
and no_args
, they all match against
the arg in same position in the argument list.
Instance Method Summary (collapse)
-
- (Object) any_args
Matches any args at all.
-
- (Object) anything
Matches any argument at all.
-
- (Object) array_including(*args)
Matches an array that includes the specified items at least once.
-
- (Object) boolean
Matches a boolean value.
-
- (Object) duck_type(*args)
Matches if the actual argument responds to the specified messages.
-
- (Object) hash_excluding(*args)
(also: #hash_not_including)
Matches a hash that doesn't include the specified key(s) or key/value.
-
- (Object) hash_including(*args)
Matches a hash that includes the specified key(s) or key/value pairs.
-
- (Object) instance_of(klass)
(also: #an_instance_of)
Matches if
arg.instance_of?(klass)
. -
- (Object) kind_of(klass)
(also: #a_kind_of)
Matches if
arg.kind_of?(klass)
. -
- (Object) no_args
Matches no arguments.
Instance Method Details
- (Object) any_args
Matches any args at all. Supports a more explicit variation of
expect(object).to receive(:message)
23 24 25 |
# File 'lib/rspec/mocks/argument_matchers.rb', line 23 def any_args AnyArgsMatcher.new end |
- (Object) anything
Matches any argument at all.
32 33 34 |
# File 'lib/rspec/mocks/argument_matchers.rb', line 32 def anything AnyArgMatcher.new end |
- (Object) array_including(*args)
Matches an array that includes the specified items at least once. Ignores duplicates and additional values
83 84 85 86 |
# File 'lib/rspec/mocks/argument_matchers.rb', line 83 def array_including(*args) actually_an_array = Array === args.first && args.count == 1 ? args.first : args ArrayIncludingMatcher.new(actually_an_array) end |
- (Object) boolean
Matches a boolean value.
60 61 62 |
# File 'lib/rspec/mocks/argument_matchers.rb', line 60 def boolean BooleanMatcher.new end |
- (Object) duck_type(*args)
Matches if the actual argument responds to the specified messages.
51 52 53 |
# File 'lib/rspec/mocks/argument_matchers.rb', line 51 def duck_type(*args) DuckTypeMatcher.new(*args) end |
- (Object) hash_excluding(*args) Also known as: hash_not_including
Matches a hash that doesn't include the specified key(s) or key/value.
95 96 97 |
# File 'lib/rspec/mocks/argument_matchers.rb', line 95 def hash_excluding(*args) HashExcludingMatcher.new(ArgumentMatchers.anythingize_lonely_keys(*args)) end |
- (Object) hash_including(*args)
Matches a hash that includes the specified key(s) or key/value pairs. Ignores any additional keys.
72 73 74 |
# File 'lib/rspec/mocks/argument_matchers.rb', line 72 def hash_including(*args) HashIncludingMatcher.new(ArgumentMatchers.anythingize_lonely_keys(*args)) end |
- (Object) instance_of(klass) Also known as: an_instance_of
Matches if arg.instance_of?(klass)
106 107 108 |
# File 'lib/rspec/mocks/argument_matchers.rb', line 106 def instance_of(klass) InstanceOf.new(klass) end |
- (Object) kind_of(klass) Also known as: a_kind_of
Matches if arg.kind_of?(klass)
116 117 118 |
# File 'lib/rspec/mocks/argument_matchers.rb', line 116 def kind_of(klass) KindOf.new(klass) end |
- (Object) no_args
Matches no arguments.
41 42 43 |
# File 'lib/rspec/mocks/argument_matchers.rb', line 41 def no_args NoArgsMatcher.new end |