[rspec-users] proxy associantion on controllers

Daniel Lopes danielvlopes at gmail.com
Fri Dec 5 10:06:56 EST 2008


Thanks for help and sorry for insistance but I don't understand aspects on
rspec ( I think not understand how we use mocks and stubs):
The behavior of my controller is...
Before Filter:
check_administrator_role
load_user

So, in this case I want run my before filter methods in before block on
rspec, like below:

describe PropertiesController do
  def mock_property(stubs={})
    @mock_property ||= mock_model(Property, stubs)
  end

  before do
    @current_user = mock_model(User, :id => 1)  <== define a current_user
with id 1
    controller.stub!(:check_administrator_role).and_return(true) <== and
current_user is administrator
    @params = {:user_id=>1}  <== define params
    User.stub!(:find).with(@params[:user_id]).and_return(@user) <== and now
try fetch the user with id 1
  end

  This line will define @user variable, right?
  User.stub!(:find).with(@params[:user_id]).and_return(@user)
  But I don't need mock the @user variable to fill it with valid values (
like user_id, name, email and etc ) ?

  I think @user content is nil and get errors from will_paginate find method
for this reason.

  describe "responding to GET index" do

    it "should expose all properties of given user as @properties" do
      @user.should_receive(:properties).and_return([mock_property])
      get :index
      assigns[:properties].should == [mock_property]
    end

  end

thanks.

Atenciosamente,

Daniel Lopes    Area Criações
Design, Websites e Sistemas Web

Visite:  http://www.areacriacoes.com.br/projects
          http://blog.areacriacoes.com.br/

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
55 (31) 3077-4560  /  55 (31) 8808-8748  /  55 (31) 8737-7501


On Fri, Dec 5, 2008 at 12:16 PM, David Chelimsky <dchelimsky at gmail.com>wrote:

> On Fri, Dec 5, 2008 at 8:07 AM, Daniel Lopes <danielvlopes at gmail.com>
> wrote:
> > Thanks Newman, I already try this but get strange error:
> >   before do
> >     @current_user = mock_model(User, :id => 1)
> >     controller.stub!(:check_administrator_role).and_return(true)
> >     User.stub(:find).with(1).and_return(@user) # <=<=<=<=<=<=
>
> It's stub!, not stub :)
>
> Cheers,
> David
>
> >   end
> > The error:
> > undefined method `stub' for #<Class:0x23a5f3c>
> >
> > Atenciosamente,
> >
> > Daniel Lopes    Area Criações
> > Design, Websites e Sistemas Web
> >
> > Visite:  http://www.areacriacoes.com.br/projects
> >           http://blog.areacriacoes.com.br/
> >
> > * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
> *
> > *
> > 55 (31) 3077-4560  /  55 (31) 8808-8748  /  55 (31) 8737-7501
> >
> >
> > On Fri, Dec 5, 2008 at 11:58 AM, Newman Huang <lists at ruby-forum.com>
> wrote:
> >>
> >> try:
> >>
> >> #@user = User.find(params[:user_id])
> >> User.stub(:find).with(xx).and_return(@user)
> >> --
> >> Posted via http://www.ruby-forum.com/.
> >> _______________________________________________
> >> rspec-users mailing list
> >> rspec-users at rubyforge.org
> >> http://rubyforge.org/mailman/listinfo/rspec-users
> >
> >
> > _______________________________________________
> > rspec-users mailing list
> > rspec-users at rubyforge.org
> > http://rubyforge.org/mailman/listinfo/rspec-users
> >
> _______________________________________________
> 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/20081205/a40978bc/attachment-0001.html>


More information about the rspec-users mailing list