Hi I'm trying to be good and practice full BDD on my current project, and don't want to abandon it as I have previously (expediency triumphed unfortunately). So expect me to be making frequent 'noob' style posts...
My current issue is with testing assignation across a has_many relationship. I'm aware I shouldn't be testing the functionality of Rails, but this is behaviour of my code. cart_spec.rb: describe Cart do before(:each) do @product = mock "Trousers" @product.stub!(:class).and_return("Product") @product.stub!(:name).and_return("Brown Trousers") @product.stub!(:price).and_return(23.99) @cart = Cart.new end it "should have 1 item after adding a Product" do @cart.add_product(@product) @cart.items.should have(1).item end it "should have 1 item but with quantity 2 after adding the same product twice" do @cart.add_product(@product) @cart.add_product(@product) @cart.items.should have(1).item end end cart.rb: class Cart < ActiveRecord::Base has_many :items, :class_name => "CartItem", :dependent => :destroy def add_product(product) current = self.items.find_by_name(product.name) if current current.increment_quantity else self.items << CartItem.new_from_product(product) end end end fails with: 'Cart should have 1 item but with quantity 2 after adding the same product twice' FAILED expected 1 item, got 2 ***** Can anyone explain to me what I'm missing? -- Posted via http://www.ruby-forum.com/. _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users