David Chelimsky wrote: > On Mon, Aug 11, 2008 at 2:49 PM, John Mark <[EMAIL PROTECTED]> wrote: >>> product = mock_model(Product, :id => 1, :category_id => 1) >>> >>> Product.stub(!find_all_by_category_id).with(anything()).and_return([product]) >>> >>> Product.should_receive(:find_all_meeting_some_criteria_for_category).with(product.category_id) >>> end >>> >>> It just sets up some objects but never actually calls an action. What >>> is the error message you're getting? >> >> Sorry again I forgot to add the last statement. > > Can't really help you if you're submitting code that is different from > the code that is causing you trouble. Please be more careful about > this. > >> Here is how the code >> should have looked like >> it "should find products given a category" do >> product = mock_model(Product, :id => 1, :category_id => 1) >> >> Product.stub!(:find_all_by_category_id).with(anything()).and_return([product]) >> >> Product.should_receive(:find_all_meeting_some_criteria_for_category).with(product.category_id) >> Product.find_all_meeting_some_criteria_for_category(product.category_id) >> end > > OK - so here, the 2nd to last line sets an expectation that Product > should receive : find_all_meeting_some_criteria_for_category with > product.category_id, and then the last line makes that exact call. > This means that none of your actual code is being executed here. Is > that really what you have?
Thanks David for the effort you are making to address my questions. Next time I will definitely run the examples I am wrting here before I post them Yes the actual code gets called and thats where the nil error is getting generated from. The code works ok for a simple application with only the Product and Category model. The real code has a lot of associations and other complex logic which I did not want to post here as they will hide the problem I am trying to solve. I will investigate it further since now I know the problem could be caused by something else other than rspec. It just looks as if (based on logs) that no database call is made in the real application when I make this call with rspec (although it works ok without rspec) products = find_all_by_category_id(category_id) The error is generated in the statement following the above statement products.each do |product| saying products is nil -- Posted via http://www.ruby-forum.com/. _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users