you need to use the assigns method like so

 it "should count the number of purchase requests found" do
   get :index
   assigns(:num_found).should == 3
 end

On Wed, Jul 15, 2009 at 2:29 PM, Leo <[email protected]> wrote:

> HI All,
> I have a controller with the following in it:
>
>  def index
>    @purchase_requests = PurchaseRequest.find(:all)
>    @num_found = @purchase_requests.size
>  end
>
>
> I want to test that @num_found is getting the number of purchase
> requests.
>
> This is what I've tried:
>
>  it "should count the number of purchase requests found" do
>    @purchase_requests.stub!(:size).and_return 3
>    @num_found.should_equal(3)
>    get :index
>  end
>
> However, I Get This Error:
>
>
> NoMethodError in 'PurchaseRequestsController Get index should count
> the number of purchase requests found'
> You have a nil object when you didn't expect it!
> The error occurred while evaluating nil.should_equal
> ./spec/controllers/purchase_requests_controller_spec.rb:21:
>
> It seems that rspec wants me to stub the instance variable.  If I do
> that then I don't think I'd actually be testing anything because I'd
> create the stub in the test and verify that the stub I created is
> there.  I want to make sure that the test will fail if I delete the
> line in the actual controller or change the name.  Can someone show me
> how to do this?
> thanks in advance.
> Leo
> _______________________________________________
> rspec-users mailing list
> [email protected]
> http://rubyforge.org/mailman/listinfo/rspec-users
>
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to