我在使用Rails 4的敏捷开发第10章的游戏时间部分的建议解决方案中理解一行代码时遇到了问题。
对于练习,我应该创建一个单元测试,添加重复的产品。 单元测试的逻辑如下:在单元测试中,我应该创建一个购物车,将两个相同的项目(已经声明为夹具)添加到购物车,保存项目然后对我期望的数字进行断言项目和总价格应该是。以下是建议的解决方案。问题是我不理解这一行及其功能: “assert_equal 2,cart.line_items [0] .quantity” 。请参阅下面的完整测试。提前谢谢!
test "add duplicate product" do
cart = Cart.create
ruby_book = products(:ruby)
cart.add_product(ruby_book.id).save!
cart.add_product(ruby_book.id).save!
assert_equal 2*book_one.price, cart.total_price
assert_equal 1, cart.line_items.size
assert_equal 2, cart.line_items[0].quantity
end
答案 0 :(得分:2)
我评论了你的代码:
test "add duplicate product" do
cart = Cart.create
ruby_book = products(:ruby)
cart.add_product(ruby_book.id).save!
cart.add_product(ruby_book.id).save!
# Checking that the total price of the cart equals the price of the book * the number of books.
assert_equal 2 * book_one.price, cart.total_price
# Only one item in the cart.
assert_equal 1, cart.line_items.size
# Only one item in the cart, but the quantity of the item is 2, since we added the same book twice.
assert_equal 2, cart.line_items[0].quantity
end