Logo: Relish

  1. Sign in

Project: RSpec Mocks 2.8

Argument matchers

Introduction

Argument matchers can be used:

  • In stubs to constrain the scope of the stubbed method

    obj.stub(:foo).with(:bar) do |arg|
    #do something for :bar
    end
    obj.stub(:foo).with(:baz) do |arg|
    #do something for :baz
    end

  • In expectations to validate the arguments that should be received in a method call

    #create a double
    obj = double()

    #expect a message with given args
    obj.should_receive(:message).with('an argument')

If more control is needed, one can use a block

obj.should_receive(:message) do |arg1,  arg2|
  # set expectations about the args in this block
  # and optionally set a return value
end

Topics

  1. explicit arguments
  2. General matchers
  3. stub with argument constraints

Last published almost 4 years ago by dchelimsky.