Re: undefined method `post'' and ''assigns''

Frederick Cheung
2011-07-07T09:54:06Z

On Jul 6, 9:18 pm, Yennie
<joanne0...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
wrote:
> I did like that
>
> require ''spec_helper''
>
> describe "UserController" do
>   describe "GET index" do
>     it "should be successful" do
>       get ''index''
>       response.should be_success
>     end
>
>     it "render the index template" do
>       get :index
>       response.should render_template(''index'')
>     end
>
>      it "assigns all users as @users" do
>        u =  Factory(:user)
>        get :index
>        assigns[:users].should == [p]
>      end
>
>   end
> end
>
> but i gives me error of require (first line), However I have
> spec_helper.rb in spec directory

How are you running the spec ? either the rake task or running

rspec spec/.../my_spec.rb

should setup the load path correctly for you

Fred

>
> plzz help
>
>
>
>
>
> > then it should detect that you''re speccing a controller
> > Fred
>
> > > error:
> > > undefined method `post'' for
> > > #<Spec::Example::ExampleGroup::Subclass_1:0xb7754114>
> > > undefined method `assigns'' for
> > > #<Spec::Example::ExampleGroup::Subclass_1:0xb785d1b4>
>
> > > Test file
>
> > > describe "GET Index" do
> > >   def mock_product(stubs={})
> > >   @mock_user ||= mock_model(User, stubs).as_null_object
> > >   end
>
> > >   def setup
> > >     @user = User.new
> > >   end
>
> > >     it "assigns all users as @users" do
> > >     @user.stub(:all){[mock_user]}
> > >     post ''index''
> > >     assigns(:users).should eq([mock_user])
> > >     end
> > > end
>
> > > please give me some help ..
>
> > > thanks
> > > Yennie