undefined method `post' and 'assigns'

Hi,

I have an error of undefined method.
can anyone help me to solve it.
I follow the tutorial to practicing testing controller of rails, and
now i got stuck with the error.. plz help

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

Hi,

I have an error of undefined method.
can anyone help me to solve it.
I follow the tutorial to practicing testing controller of rails, and
now i got stuck with the error.. plz help

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 &quot;assigns all users as @users&quot; do
@user\.stub\(:all\)\{\[mock\_user\]\}
post &#39;index&#39;

I change it as get 'index'
it still gives me undefined method

Hi,

I have an error of undefined method.
can anyone help me to solve it.
I follow the tutorial to practicing testing controller of rails, and
now i got stuck with the error.. plz help

rspec probably doesn't understand that you're testing a controller.

if your spec file looks like

require 'spec_helper'

describe SomeController do
...
end

then it should detect that you're speccing a controller
Fred

> Hi,

> I have an error of undefined method.
> can anyone help me to solve it.
> I follow the tutorial to practicing testing controller of rails, and
> now i got stuck with the error.. plz help

rspec probably doesn't understand that you're testing a controller.

if your spec file looks like

require 'spec_helper'

describe SomeController do
...
end

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

it gives the the require error. However. I have a spec_helper.rb in
the spec dicrectory.. kind of confusing

plz help me

> Hi,

> I have an error of undefined method.
> can anyone help me to solve it.
> I follow the tutorial to practicing testing controller of rails, and
> now i got stuck with the error.. plz help

rspec probably doesn't understand that you're testing a controller.

if your spec file looks like

require 'spec_helper'

describe SomeController do
...
end

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

plzz help

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 &quot;render the index template&quot; do
  get :index
  response\.should render\_template\(&#39;index&#39;\)
end

 it &quot;assigns all users as @users&quot; 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