[rspec-users] Not seeing the failure

Corey Haines coreyhaines at gmail.com
Wed Jan 23 11:57:59 EST 2008


Nope, that still didn't work.
Still getting
    @coupon.stub!(:user=).with(@current_user)

Here's my spec and code using your recommended way:

spec - http://pastie.caboo.se/142451
code - http://pastie.caboo.se/142452

If I add back
    @coupon.stub!(:user=).with(@current_user)

they pass.

It seems as though the understanding is that setting up your mock with the
options (:user => @current_user) should set stubs for both get and set, but
it doesn't. I think it just sets up the stub for the get.

-Corey

On Jan 23, 2008 11:50 AM, Jarkko Laine <jarkko at jlaine.net> wrote:

> On 23.1.2008, at 18.02, Corey Haines wrote:
>
> > I get the unexpected message :user= failure.
> >
> > When you set up the mock with the initial parameters, wouldn't those
> > be stubbing: @coupon.stub!(:user).and_return(@current_user)
> >
>
> You can do it like this:
>
> @coupon = mock_model(Coupon, :user= => nil, :user =>
> @current_user, :save => true)
>
> That stubs both user= and user. I often create reusable "mock
> factories" in spec_helper.rb that take care of the normal methods for
> AR objects:
>
> def mock_coupon(opts = {})
>   mock_model(Coupon, {:user= => nil, :user => mock_user, :save =>
> true}.merge(opts))
> end
>
> Often I also stub the errors method there because it's called pretty
> often in controllers and views.
>
> //jarkko
>
> --
> Jarkko Laine
> http://jlaine.net
> http://dotherightthing.com
> http://www.railsecommerce.com
> http://odesign.fi
>
>
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>



-- 
http://www.coreyhaines.com
The Internet's Premiere source of information about Corey Haines
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://rubyforge.org/pipermail/rspec-users/attachments/20080123/9abf8168/attachment-0001.html 


More information about the rspec-users mailing list