[rspec-users] should_receive with block or proc?

David Chelimsky dchelimsky at gmail.com
Mon Aug 6 10:42:51 UTC 2012


On Mon, Aug 6, 2012 at 3:48 AM, Alexander Baronec <abonec at gmail.com> wrote:
> 2012/8/5 David Chelimsky <dchelimsky at gmail.com>
>>
>> On Sat, Aug 4, 2012 at 1:46 PM, Alexander Baronec <abonec at gmail.com>
>> wrote:
>> > Hello.
>> > How can I test object to receive message and compare arguments of this
>> > message with value evaluated at present time? It is possible?
>> >
>> > For example:
>> >
>> > should_receive(:api_send).with( -> { players.count } ) And players.count
>> > will be called and evaluated only when api_send is received.
>>
>> Look at Fake Implementation on
>> https://www.relishapp.com/rspec/rspec-mocks/v/2-11/docs/method-stubs.
>> You can do the same thing w/ should_receive, e.g.
>>
>> foo.should_receive(:api_send) do |player_count|
>>   player_count.should eq players.count
>> end
>>
>> HTH,
>> David

> It don't work when object received few messages. I described it there:
> http://stackoverflow.com/questions/11669979/should-recieve-alongside-other-messages

should_receive, by default, expects exactly one call, but there are a
number of ways for you to specify more than one call. One possibility
would be:

foo.should_receive(:api_send).ordered
foo.should_receive(:api_send).with(2).ordered

See http://rubydoc.info/gems/rspec-mocks for more info


More information about the rspec-users mailing list