main function:进行unnitest
import unittest import shopping_cart def prepare_cart(): cart = [] item = { 'name': 'Super Awesome Water Bottle', 'price': 22.95, 'quantity': 1, 'sku': 'ABC123' } item2 = { 'name': 'Awesome Water Bottle', 'price': 12.95, 'quantity': 1, 'sku': '123DEF' } shopping_cart.add_item(cart, item) shopping_cart.add_item(cart, item2) return cart class TestShoppingCart(unittest.TestCase): def test_add_item_to_cart(self): cart = [] item = { 'name': 'Super Awesome Water Bottle', 'price': 22.95, 'quantity': 1, 'sku': 'ABC123' } shopping_cart.add_item(cart, item) self.assertEqual(len(cart), 1) self.assertEqual(cart[0]['sku'], 'ABC123') self.assertEqual(cart[0]['price'], 22.95) self.assertEqual(cart[0]['name'], 'Super Awesome Water Bottle') item2 = { 'name': 'Awesome Water Bottle', 'price': 12.95, 'quantity': 1, 'sku': '123DEF' } shopping_cart.add_item(cart, item2) self.assertEqual(len(cart), 2) self.assertEqual(cart[1]['sku'], '123DEF') self.assertEqual(cart[1]['price'], 12.95) self.assertEqual(cart[1]['name'], 'Awesome Water Bottle') def test_calculate_cart_total(self): cart = prepare_cart() total = shopping_cart.calculate_total(cart) self.assertEqual(total, 35.90) def test_remove_item(self): cart = prepare_cart() shopping_cart.remove_item(cart, 'Super Awesome Water Bottle') self.assertEqual(len(cart), 1) self.assertEqual(cart[0]['name'], 'Awesome Water Bottle') self.assertEqual(cart[0]['price'], 12.95) def test_update_quantity(self): cart = prepare_cart() shopping_cart.update_quantity(cart, 'Super Awesome Water Bottle', 3) self.assertEqual(cart[0]['quantity'], 3) total = shopping_cart.calculate_total(cart) self.assertEqual(total, 81.80) def test_set_quantity_zero(self): cart = prepare_cart() shopping_cart.update_quantity(cart, 'Super Awesome Water Bottle', 0) self.assertEqual(len(cart), 1) total = shopping_cart.calculate_total(cart) self.assertEqual(total, 12.95) self.assertEqual(cart[0]['name'], 'Awesome Water Bottle') def test_set_quantity_negative(self): cart = prepare_cart() shopping_cart.update_quantity(cart, 'Awesome Water Bottle', -1) self.assertEqual(len(cart), 1) total = shopping_cart.calculate_total(cart) self.assertEqual(total, 22.95) self.assertEqual(cart[0]['name'], 'Super Awesome Water Bottle') if __name__ == '__main__': unittest.main()module shopping_cart: 被检验的自定义函数
def remove_item(cart, name): for i in range(len(cart)): if cart[i]['name'] == name: del cart[i] break def calculate_total(cart): total = 0 for item in cart: total += item['price'] * item['quantity'] return total def add_item(cart, item): cart.append(item) def update_quantity(cart, name, quantity): for item in cart: if item['name'] == name: item['quantity'] = quantity if quantity <= 0: remove_item(cart, name) def main(): cart = [] item = { 'name': 'Super Awesome Water Bottle', 'price': 22.95, 'quantity': 1, 'sku': 'ABC123' } item2 = { 'name': 'Awesome Water Bottle', 'price': 12.95, 'quantity': 1, 'sku': '123DEF' } add_item(cart, item) add_item(cart, item2) remove_item(cart, 'Super Awesome Water Bottle') update_quantity(cart, 'Awesome Water Bottle', 3)
