[rspec-users] Possible Bug

David Chelimsky dchelimsky at gmail.com
Tue Jul 24 11:25:20 EDT 2007


On 7/24/07, Daniel N <has.sox at gmail.com> wrote:
>
>
>
> 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

Thanks

>
>
>
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>


More information about the rspec-users mailing list