The technique I would use is as follows:

allow(client_mock).to_receive(:get_opportunity) do |arg|
  case arg 
  when “1234567890”
    opportunity1
  when “0987654321”
    opportunity2
  end
end

You can see this documented here: 
https://relishapp.com/rspec/rspec-mocks/v/2-99/docs/method-stubs 
<https://relishapp.com/rspec/rspec-mocks/v/2-99/docs/method-stubs>

Cheers!

> On Feb 11, 2021, at 7:27 AM, Aaric Pittman <aaricpitt...@gmail.com> wrote:
> 
> I've got an instance double of a class and I want to stub two calls to the 
> same method and return different values based on different arguments. This is 
> an example of what I have.
> 
> allow(client_mock).to 
> receive(:get_opportunity).with("1234567890").and_return(opportunity1)
> allow(client_mock).to 
> receive(:get_opportunity).with("0987654321").and_return(opportunity2)
> 
> I am getting the following error though
> 
> #<InstanceDouble(Client) (anonymous)> received :get_opportunity with 
> unexpected arguments
> expected: ("1234567890")
> got: ("0987654321")
> Please stub a default value first if message might be received with other 
> args as well.
> 
> I feel like I've done this before without problems. Could someone tell me 
> what I'm doing wrong?
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "rspec" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to rspec+unsubscr...@googlegroups.com 
> <mailto:rspec+unsubscr...@googlegroups.com>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/rspec/74a89ab9-4d86-4ddf-913d-42b928ecbac9n%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/rspec/74a89ab9-4d86-4ddf-913d-42b928ecbac9n%40googlegroups.com?utm_medium=email&utm_source=footer>.

-- 
You received this message because you are subscribed to the Google Groups 
"rspec" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to rspec+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rspec/D699B720-0D35-49A2-B541-DBF2E23CF5E4%40pobox.com.

Reply via email to