[rspec-users] Do you think it would look cleaner?

Andrew WC Brown omen.king at gmail.com
Sat Dec 29 15:00:09 EST 2007


eg.
I'm going to the store to buy one milk
I'm going to the store to buy one bagel
I'm going to the store to buy one coffee

@shopping_list.should_receive(:milk).once.and_return('milk')
@shopping_list.should_receive(:bagel).once.and_return('bagel')
@shopping_list.should_receive(:coffee).once.and_return('coffee')

I going to the store to buy one:
 * milk
 * bagel
 * coffee

@shopping_list.should_receive_the_following(
  :milk => 'milk'
  :bagel => 'bagel'
  :coffee => 'coffee'
).once

For the shopping list I describe its expected that they all have the same
expectations.
I'm still reading the rspec source.

I would think of creating a new method called: should_receive_the_following
but seeing how the message_expectations work not sure how plausible it would
be to implement.

You wouldn't expect to return something:

@shopping_list.should_receive_the_following(
  :milk => 'milk'
  :bagel => 'bagel'
  :coffee => 'coffee'
).once.and_return(@list)

It boggles my mind. I haven't done too much meta programming.

I just see these large blocks of:

@shopping_list.should_receive(:milk)..and_return('milk')
@shopping_list.should_receive(:bagel).and_return('bagel')
@shopping_list.should_receive(:coffee).and_return('coffee')

and it would be much clearer if I could list them in a hash instead.


On Dec 29, 2007 1:29 PM, Pat Maddox <pergesu at gmail.com> wrote:

> On Dec 28, 2007 11:00 PM, Andrew WC Brown <omen.king at gmail.com> wrote:
> > I was looking over some of my specs.
> > I was thinking that the following:
> >
> > @game.should_receive(:name).and_return('The Battle for Blaze')
> > @game.should_receive(:people).and_return(5000000)
> > @game.should_receive (:activated).and_return(true)
> >
> > Would it look cleaner if I could do this instead?
> >
> > @game.should_recieve_and_return(
> >   :name => 'The Battle for Blaze'
> >   :people => 5000000
> >   :activated => true)
> >
> > Opinions?
> >
> > _______________________________________________
> > rspec-users mailing list
> > rspec-users at rubyforge.org
> > http://rubyforge.org/mailman/listinfo/rspec-users
> >
>
> Two thoughts as to why I wouldn't use this...
>
> 1. One expectation per example
> 2. Stub queries, expect commands
>
> Your way is clean though.  How do you handle arguments?
>
> Pat
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://rubyforge.org/pipermail/rspec-users/attachments/20071229/71190359/attachment.html 


More information about the rspec-users mailing list