Module: Spec::Mocks::ArgumentConstraints

Included in:
ExampleMethods
Defined in:
lib/gems/rspec-1.1.11/lib/spec/mocks/argument_constraints.rb,
lib/gems/rspec-1.1.11/spec/spec/mocks/hash_including_matcher_spec.rb

Overview

ArgumentConstraints are messages 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(), the constraints are all positional - they match against the arg in the given position.

Defined Under Namespace

Classes: AnyArgConstraint, AnyArgsConstraint, BooleanConstraint, DuckTypeConstraint, EqualityProxy, HashIncludingConstraint, MatcherConstraint, NoArgsConstraint, RegexpConstraint

Instance Method Summary collapse

Instance Method Details

#any_argsObject

:call-seq:

object.should_receive(:message).with(any_args())

Passes if object receives :message with any args at all. This is really a more explicit variation of object.should_receive(:message)



111
112
113
# File 'lib/gems/rspec-1.1.11/lib/spec/mocks/argument_constraints.rb', line 111

def any_args
  AnyArgsConstraint.new
end

#anythingObject

:call-seq:

object.should_receive(:message).with(anything())

Passes as long as there is an argument.



119
120
121
# File 'lib/gems/rspec-1.1.11/lib/spec/mocks/argument_constraints.rb', line 119

def anything
  AnyArgConstraint.new(nil)
end

#booleanObject

:call-seq:

object.should_receive(:message).with(boolean())

Passes if the argument is boolean.



151
152
153
# File 'lib/gems/rspec-1.1.11/lib/spec/mocks/argument_constraints.rb', line 151

def boolean
  BooleanConstraint.new(nil)
end

#duck_type(*args) ⇒ Object

:call-seq:

object.should_receive(:message).with(duck_type(:hello))
object.should_receive(:message).with(duck_type(:hello, :goodbye))

Passes if the argument responds to the specified messages.

Examples

array = []
display = mock('display')
display.should_receive(:present_names).with(duck_type(:length, :each))
=> passes


143
144
145
# File 'lib/gems/rspec-1.1.11/lib/spec/mocks/argument_constraints.rb', line 143

def duck_type(*args)
  DuckTypeConstraint.new(*args)
end

#hash_including(expected = {}) ⇒ Object

:call-seq:

object.should_receive(:message).with(hash_including(:this => that))

Passes if the argument is a hash that includes the specified key/value pairs. If the hash includes other keys, it will still pass.



160
161
162
# File 'lib/gems/rspec-1.1.11/lib/spec/mocks/argument_constraints.rb', line 160

def hash_including(expected={})
  HashIncludingConstraint.new(expected)
end

#no_argsObject

:call-seq:

object.should_receive(:message).with(no_args)

Passes if no arguments are passed along with the message



127
128
129
# File 'lib/gems/rspec-1.1.11/lib/spec/mocks/argument_constraints.rb', line 127

def no_args
  NoArgsConstraint.new
end