无法从购物车中删除商品。规格失败

时间:2011-05-20 22:54:43

标签: ruby-on-rails activerecord rspec

我有一个简单的购物车应用程序,我正在尝试测试以下方法:

  def add(item_id)
    item = Product.find(item_id)
    args = {
      :product_id=>item.id,
      :seller_id=>item.shop_id,
      :price =>item.price
    }
    cart_items<<CartItem.create(args)
  end

  def remove(item_id)
    cart_items.where(:product_id=>item_id).map(&:destroy)
  end

这件事的规格是

  it "should remove a product from the cart" do
    cart = Cart.new
    item = Product.create(:price=>3450,:id=>1,:shop_id=>1)
    cart.add(item.id)    
    cart.should_not be_empty

    cart.remove(item.id)
    cart.should be_empty
  end

无论我做什么,我都无法通过。 cart_item.length始终等于1.不确定为什么会发生这种情况。请帮忙。

2 个答案:

答案 0 :(得分:0)

我经常发现这是因为您在删除项目后没有从数据库重新加载。

cart.reload
cart.should be_empty

答案 1 :(得分:0)

我怀疑问题在于您没有随时将购物车保存到数据库中。