[rspec-users] Possible Bug

Daniel N has.sox at gmail.com
Tue Jul 24 11:18:00 EDT 2007


On 7/25/07, David Chelimsky <dchelimsky at gmail.com> wrote:
>
> On 7/24/07, Daniel N <has.sox at gmail.com> wrote:
> >
> >
> > On 7/25/07, Daniel N <has.sox at gmail.com> wrote:
> > > I'm trying to test some code that has validates each and I've got a
> very
> > strange failure
> > >
> > > Mock 'Book_1027' expected :store_with_privacy? with (#<Clip:0x1a99b96
> > @name="Clip_1025">) but received it with (#<Clip:0x1a99b96
> > @name="Clip_1025">)
> > >
> > > The Spec
> > >
> > >   it "should check that a book can save a clip" do
> > >     @user = mock_model( User, :id => 3  )
> > >     @clip = mock_model( Clip, :id => 1, :privacy => :public, :user =>
> > @user  )
> > >     @book = mock_model( Book, :id => 2, :privacy => :public, :user =>
> > @user, :user_id => @user.id  )
> > >
> > >     @book.should_receive( :store_with_privacy? ).with( @clip )
> > >
> > >     clipping = Clipping.new( valid_clipping_attributes.with( :clip =>
> > @clip, :book => @book ) )
> > >     clipping.valid?
> > > end
> > >
> > > And the model
> > >
> > > class Clipping < AR:B
> > > belongs_to :clip
> > > belongs_to :book
> > > ...
> > >
> > >   validates_each :clip do |model, attr, value|
> > >     if !model.book.nil? && !model.clip.nil?
> > >       if !model.book.store_with_privacy?( model.clip )
> > >         model.errors.add( :clip, "You can't add this item to this
> book" )
> > >       end
> > >     end
> > >   end
> > >
> > > ...
> > > end
> > >
> > > Any thoughts on what might be causing that?
> > >
> > > Cheers
> > > Daniel
> > >
> >
> >
> > I've also found that by stubbing the @book.store_with_privacy? in a
> before
> > block, and then having an example that just mocks that method
> >
> >     @book.should_receive( :store_with_privacy? ).with( @clip )
> >
> > makes it act differently.  In this case I get
> >
> > Mock 'Book_1026' expected :store_with_privacy? with (#<Clip:0x1a92aee
> > @name="Clip_1025">) once, but received it 0 times
> >
> > It seems that the stub is taking precedence over the should_receive
> call.
> >
> > Is this expected behaviour?
>
> Absolutely not. Please submit a bug report to the tracker on this,
> with the examples you have here.
>
> http://rubyforge.org/tracker/index.php?group_id=797
>
> Thanks,
> David


Done
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://rubyforge.org/pipermail/rspec-users/attachments/20070725/74ed489c/attachment.html 


More information about the rspec-users mailing list