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
