【问题标题】:Cannot remove item from cart. Spec is failing无法从购物车中移除商品。规范失败
【发布时间】:2011-05-20 22:54:42
【问题描述】:

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

  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。不知道为什么会这样。请帮忙。

【问题讨论】:

    标签: ruby-on-rails activerecord rspec


    【解决方案1】:

    我怀疑问题是您在任何时候都没有将购物车保存到数据库中。

    【讨论】:

      【解决方案2】:

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

      cart.reload
      cart.should be_empty
      

      【讨论】:

      • 不确定你在哪里得到错误——回溯告诉你了吗?发现在哪里?
      • 我正在使用自动测试,所以没有回溯。 :( 但是错误来自调用重新加载的行。
      猜你喜欢
      • 2018-07-22
      • 2013-10-17
      • 1970-01-01
      • 1970-01-01
      • 2017-02-01
      • 2015-07-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多