蓝桥杯单元测试第四题(Python)

题目链接单元测试专项练习(Java+Python) - 第四题单元测试题目(Python) - 蓝桥云课 (lanqiao.cn)

解题思路:

1.题目要求:使用基本路径法+简单循环覆盖法

2.看代码,画流程图

循环的流程图不太准确,但意思是这个意思,我不知道怎么画比较好,如果有更好建议可以提

3.确定测试用例

基本路径法:

1.购物车不存在是,创建购物车并将物品添加进去

2.购物车存在,新商品添加进购物车

3.购物车存在,商品已在购物车中,购物车中商品数量+1

简单循环法:

循环次数0 次1 次2 次m 次n-1 次n 次n+1 次
测试用例( num 的值)新商品加入空购物车该商品位于购物车第一个该商品位于购物车第二个该商品位于购物车第3~9个该商品位于购物车第8个该商品位于购物车第9个购物车有9个物品,新添加的购物车中已有9个物品

分析完毕,整合一下,循环次数0次、n+1次和循环1~n次里这种情况可以覆盖到基本路径法中的2、3。所以我们一共要写的测试用例是8条,根据代码,对应关系如下:(注意数量+2,因为代码里g1~g10的数量都是2)

测试编号输入预期输出备注
test_goods_service_01

goods_list1 g1

购物车非空购物车不存在是,创建购物车并将物品添加进去
test_goods_service_02

goods_list2 g1

添加新商品循环0次;购物车存在,新商品添加进购物车
test_goods_service_03

goods_list3 g1

g1商品数量+2循环1次;购物车存在,商品已在购物车中,购物车中商品数量+1
test_goods_service_04

goods_list3 g2

g2商品数量+2循环2次
test_goods_service_05

goods_list3 g5

g5商品数量+2循环m(5)次
test_goods_service_06

goods_list3 g8

g8商品数量+2循环n-1(8)次
test_goods_service_07

goods_list3 g9

g9商品数量+2循环n(9)次
test_goods_service_08

goods_list3 g10

购物车新增商品g10循环n+1(10)次

((

))

4.代码(有更好的一起评论或者私信讨论呀!)

代码写法:(没有突出数量检验,还需优化,本人python水平有限,有大佬可以指点指点Please)

import unittest
from datas import Datas
from goods_service import GoodsService

# 单元测试
# 1. 请使用简单循环覆盖法对被测源代码 Goods 和 GoodsService 类中的 shopping_cart 方法设计单元测试用例。
# 2. 请在下方 GoodsServiceTest 类中填写单元测试代码内容。
# 3. 请使用 Datas 类中提供的集合列表和商品对象的数据进行测试。

class GoodsServiceTest(unittest.TestCase):

    def test_shopping_cart_01(self):
        # TODO 请填写单元测试代码
        # 新增商品在购物车列表中不存在的情况
        self.assertEqual(Datas.goods_list3, GoodsService.shopping_cart(Datas.goods_list3,Datas.g10))
    def test_shopping_cart_02(self):
        # 循环0次
        self.assertEqual(Datas.goods_list2, GoodsService.shopping_cart(Datas.goods_list2,Datas.g1))
    def test_shopping_cart_03(self):
        # 循环1次
        self.assertEqual(Datas.goods_list3, GoodsService.shopping_cart(Datas.goods_list3,Datas.g1))
    def test_shopping_cart_04(self):
        # 循环2次
        self.assertEqual(Datas.goods_list3, GoodsService.shopping_cart(Datas.goods_list3,Datas.g2))
    def test_shopping_cart_05(self):
        # 循环m次
        self.assertEqual(Datas.goods_list3, GoodsService.shopping_cart(Datas.goods_list3,Datas.g5))
    def test_shopping_cart_06(self):
        # 循环n-1次
        self.assertEqual(Datas.goods_list3, GoodsService.shopping_cart(Datas.goods_list3,Datas.g8))
    def test_shopping_cart_07(self):
        # 循环n次
        self.assertEqual(Datas.goods_list3, GoodsService.shopping_cart(Datas.goods_list3,Datas.g9))
    def test_shopping_cart_08(self):
        # 购物车不存在
        self.assertIsNotNone(GoodsService.shopping_cart(Datas.goods_list1,Datas.g1))

if __name__ == '__main__':
    unittest.main()

优化代码写法2:可以验证购物车中数量+2,确认购物车中新增商品

import unittest
from datas import Datas
from goods_service import GoodsService

# 单元测试
# 1. 请使用简单循环覆盖法对被测源代码 Goods 和 GoodsService 类中的 shopping_cart 方法设计单元测试用例。
# 2. 请在下方 GoodsServiceTest 类中填写单元测试代码内容。
# 3. 请使用 Datas 类中提供的集合列表和商品对象的数据进行测试。

class GoodsServiceTest(unittest.TestCase):

    def test_shopping_cart_01(self):
        # 循环n+1,新增商品在购物车列表中不存在的情况
        self.assertEqual(Datas.g10, GoodsService.shopping_cart(Datas.goods_list3,Datas.g10)[9])
    def test_shopping_cart_02(self):
        # 循环0次,新增商品在购物车列表中不存在的情况
        self.assertEqual(Datas.g1, GoodsService.shopping_cart(Datas.goods_list2,Datas.g1)[0])
    def test_shopping_cart_03(self):
        # 循环1次
        self.assertEqual(4, GoodsService.shopping_cart(Datas.goods_list3,Datas.g1)[0].quantity)
    def test_shopping_cart_04(self):
        # 循环2次
        self.assertEqual(4, GoodsService.shopping_cart(Datas.goods_list3,Datas.g2)[1].quantity)
    def test_shopping_cart_05(self):
        # 循环m次
        self.assertEqual(4, GoodsService.shopping_cart(Datas.goods_list3,Datas.g5)[4].quantity)
    def test_shopping_cart_06(self):
        # 循环n-1次
        self.assertEqual(4, GoodsService.shopping_cart(Datas.goods_list3,Datas.g8)[7].quantity)
    def test_shopping_cart_07(self):
        # 循环n次
        self.assertEqual(4, GoodsService.shopping_cart(Datas.goods_list3,Datas.g9)[8].quantity)
    def test_shopping_cart_08(self):
        # 购物车不存在
        self.assertIsNotNone(GoodsService.shopping_cart(Datas.goods_list1,Datas.g1))
        self.assertEqual(Datas.g1, GoodsService.shopping_cart(Datas.goods_list2,Datas.g1)[0])

if __name__ == '__main__':
    unittest.main()

5.总结

如果对你有帮助,给个赞吧,给修改意见更好,感谢感谢!

  • 24
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
代码下载:完整代码,可直接运行 ;运行版本:2022a或2019b或2014a;若运行有问,可私信博主; **仿真咨询 1 各类智能优化算法改进及应用** 生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化 **2 机器学习和深度学习方面** 卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断 **3 图像处理方面** 图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知 **4 路径规划方面** 旅行商问(TSP)、车辆路径问(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化 **5 无人机应用方面** 无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配 **6 无线传感器定位及布局方面** 传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化 **7 信号处理方面** 信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化 **8 电力系统方面** 微电网优化、无功优化、配电网重构、储能配置 **9 元胞自动机方面** 交通流 人群疏散 病毒扩散 晶体生长 **10 雷达方面** 卡尔曼滤波跟踪、航迹关联、航迹融合

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值