Module: Mocha::ParameterMatchers::BaseMethods Abstract

Overview

This module is abstract.

Include and implement #matches? and #mocha_inspect to define a custom matcher. Also add a suitably named instance method to Methods to build an instance of the new matcher c.f. Methods#equals.

Instance Method Summary collapse

Instance Method Details

#&(other) ⇒ AllOf

A shorthand way of combining two matchers when both must match.

Returns a new AllOf parameter matcher combining two matchers using a logical AND.

This shorthand will not work with an implicit equals match. Instead, an explicit Equals matcher should be used.

Examples:

Alternative ways to combine matchers with a logical AND.

object = mock()
object.expects(:run).with(all_of(has_key(:foo), has_key(:bar)))
object.run(foo: 'foovalue', bar: 'barvalue')

# is exactly equivalent to

object.expects(:run).with(has_key(:foo) & has_key(:bar))
object.run(foo: 'foovalue', bar: 'barvalue)

Parameters:

Returns:

  • (AllOf)

    parameter matcher.

See Also:



29
30
31
# File 'lib/mocha/parameter_matchers/base_methods.rb', line 29

def &(other)
  AllOf.new(self, other)
end

#|(other) ⇒ AnyOf

A shorthand way of combining two matchers when at least one must match.

Returns a new AnyOf parameter matcher combining two matchers using a logical OR.

This shorthand will not work with an implicit equals match. Instead, an explicit Equals matcher should be used.

Examples:

Alternative ways to combine matchers with a logical OR.

object = mock()
object.expects(:run).with(any_of(has_key(:foo), has_key(:bar)))
object.run(foo: 'foovalue')

# is exactly equivalent to

object.expects(:run).with(has_key(:foo) | has_key(:bar))
object.run(foo: 'foovalue')

Using an explicit Equals matcher in combination with #|.

object.expects(:run).with(equals(1) | equals(2))
object.run(1) # passes
object.run(2) # passes
object.run(3) # fails

Parameters:

Returns:

  • (AnyOf)

    parameter matcher.

See Also:



59
60
61
# File 'lib/mocha/parameter_matchers/base_methods.rb', line 59

def |(other)
  AnyOf.new(self, other)
end