1.举重比赛,需要根据性别和体重来决定是否有参赛资格,具体规则如下:
- 当性别为男且体重大于等于 54 公斤时,可参加男子组比赛,否则无资格参赛。
- 当性别为女且体重大于等于 46 公斤时,可参加女子组比赛,否则无资格参赛。
- 当性别既不是男也不是女时,系统显示性别异常。
请使用基本路径覆盖法对被测源代码 Weightlifting 类中的 divide 方法设计单元测试用例,并在 WeightliftingTest 类中完成单元测试代码。
# 本类主要功能描述:
# 1、性别既不是男也不是女,则显示性别异常
# 2、性别为男,体重大于等于54公斤,显示可参加男子组比赛,否则无资格参赛
# 3、性别为女,体重大于等于46公斤,显示可参加女子组比赛,否则无资格参赛
class Weightlifting:
def divide(sex, weight):
if sex == '男':
if weight >= 54:
return '可以参加男子组比赛'
else:
return '无资格参赛'
elif sex == '女':
if weight >= 46:
return '可以参加女子组比赛'
else:
return '无资格参赛'
else:
return '性别异常'
from weightlifting import Weightlifting
# 单元测试
# 1. 请使用基本路径覆盖法对被测源代码 Weightlifting 类中的 divide 方法设计 5 条单元测试用例。
# 2. 请在下方 WeightliftingTest 类中填写单元测试代码内容。
class WeightliftingTest(unittest.TestCase):
def test_divide_01(self):
# TODO 请填写单元测试代码
self.assertEqual(Weightlifting.divide('男', 67), '可以参加男子组比赛')
def test_divide_02(self):
# TODO 请填写单元测试代码
self.assertEqual(Weightlifting.divide('男', 17), '无资格参赛')
def test_divide_03(self):
# TODO 请填写单元测试代码
self.assertEqual(Weightlifting.divide('女', 57), '可以参加女子组比赛')
def test_divide_04(self):
# TODO 请填写单元测试代码
self.assertEqual(Weightlifting.divide('女', 17), '无资格参赛')
def test_divide_05(self):
# TODO 请填写单元测试代码
self.assertEqual(Weightlifting.divide('女男', 177), '性别异常')
if __name__ == '__main__':
unittest.main()
2.通过输入的 a、b、c 三个整数,对它们进行从小到大的排序,具体规则如下:
- 当 a 大于等于 b,且 c 大于 a 时,显示 “bac”,若 c 小于 a,且 c 大于 b时,显示 “bca”,否则显示 “cba”;
- 当 a 小于 b,且 c 大于 b 时,显示 “abc”,若 c 小于 b,且 c 大于 a 时,显示 “acb”,否则显示 “cab”。
- 请使用基本路径覆盖法对被测源代码 NumberSort 类中的 sort 方法设计单元测试用例。并在 NumberSortTest 类中完成单元测试代码
# 本类主要功能描述:
# 1、当 a 大于等于 b,且 c 大于 a 时,显示 “bac”,若 c 小于 a,且 c 大于 b时,显示 “bca”,否则显示 “cba”;
# 2、当 a 小于 b,且 c 大于 b 时,显示 “abc”,若 c 小于 b,且 c 大于 a 时,显示 “acb”,否则显示 “cab”。
class NumberSort:
def sort(a, b, c):
if a >= b:
return 'bac' if c > a else 'bca' if c > b else 'cba'
else:
return 'abc' if c > b else 'acb' if c > a else 'cab'
import unittest
from number_sort import NumberSort
# 单元测试
# 1. 请使用基本路径覆盖法对被测源代码 NumberSort 类中的 sort 方法设计 6 条单元测试用例。
# 2. 请在下方 NumberSortTest 类中填写单元测试代码内容。
class NumberSortTest(unittest.TestCase):
def test_sort_01(self):
# TODO 请填写单元测试代码
self.assertEqual(NumberSort.sort(12, 5, 13), 'bac')
def test_sort_02(self):
# TODO 请填写单元测试代码
self.assertEqual(NumberSort.sort(12, 5, 8), 'bca')
def test_sort_03(self):
# TODO 请填写单元测试代码
self.assertEqual(NumberSort.sort(12, 5, 3), 'cba')
def test_sort_04(self):
# TODO 请填写单元测试代码
self.assertEqual(NumberSort.sort(3, 5, 8), 'abc')
def test_sort_05(self):
# TODO 请填写单元测试代码
self.assertEqual(NumberSort.sort(3, 5, 4), 'acb')
def test_sort_06(self):
# TODO 请填写单元测试代码
self.assertEqual(NumberSort.sort(3, 5, 2), 'cab')
if __name__ == '__main__':
unittest.main()
3.界面获取用户名信息,要求字符串长度必须在 3 ~ 12 位之间,为了显示样式的美观性,根据获取的字符串,以及限定的最小长度(3)和最大长度(12)进行处理,具体规则如下:
字符串不能为 null,否则无法进行处理,因此当为 null 时,返回 “字符串不能为空”。
字符串要求的长度是参数提供的最小长度 ~ 最大长度位,会对获取的字符串进行去除前后空格的处理,当去除空格后长度依然不满足要求时,会返回 “字符串长度必须在最小长度 ~ 最大长度位”。例如:字符串长度必须在3~12位。
对于长度小于最大长度位的字符串,会在字符串后面添加空格补全,直到长度为最大长度位后处理结束,并返回处理后的字符串
请使用简单循环覆盖法的标准要求,对被测源代码 Utils 类中的 stringStyle 方法进行设计单元测试用例。并在 UtilsTest 类中完成单元测试代码。
# 本类为工具类,主要功能描述:# 1、字符串不能为 null,否则无法进行处理,因此当为 null 时,返回 “字符串不能为空”。# 2、字符串要求的长度是参数提供的最小长度 ~ 最大长度位,会对获取的字符串进行去除前后空格的处理,当去除空格后长度依然不满足要求时,会返回 “字符串长度必须在最小长度 ~ 最大长度位”。# 3、对于长度小于最大长度位的字符串,会在字符串后面添加空格补全,直到长度为最大长度位后处理结束,并返回处理后的字符串。class Utils: # 对字符串长度进行处理,为达到最大长度时,用空格补全 # @param message 字符串 # @param min 最小长度 # @param max 最大长度 # @return 处理后的信息 def string_style(message, min, max): result = None # 字符串不能为空 if message is not None: # 去除字符串前后空格 message = message.strip() # 获取字符串长度 length = len(message) if min <= length <= max: result = message # 当长度为达到最大长度时,用空格补全 for i in range(max - length): result = result + ' ' else: result = '字符串长度必须在' + str(min) + '~' + str(max) + '位' else: result = '字符串不能为空' return result``````import unittestfrom utils import Utils# 单元测试# 1. 请使用简单循环覆盖法对被测源代码 Utils 类中的 string_style 方法设计 6 条单元测试用例。# 2. 请在下方 UtilsTest 类中填写单元测试代码内容。class UtilsTest(unittest.TestCase): def test_string_style_01(self): # TODO 请填写单元测试代码 self.assertEqual(Utils.string_style(None, 5, 8), '字符串不能为空') def test_string_style_02(self): # TODO 请填写单元测试代码 self.assertEqual(Utils.string_style('ab', 5, 8), '字符串长度必须在5~8位') def test_string_style_03(self): # TODO 请填写单元测试代码 self.assertEqual(Utils.string_style('abcde', 5, 8), 'abcde ') def test_string_style_04(self): # TODO 请填写单元测试代码 self.assertEqual(Utils.string_style('abcdefgh', 5, 8), 'abcdefgh') def test_string_style_05(self): # TODO 请填写单元测试代码 self.assertEqual(Utils.string_style('abcdefghj', 5, 8), '字符串长度必须在5~8位') def test_string_style_06(self): # TODO 请填写单元测试代码 self.assertEqual(Utils.string_style('abcdef', 5, 8), 'abcdef ')if __name__ == '__main__': unittest.main()
#循环0次 def test_string_style_01(self): # TODO 请填写单元测试代码 self.assertEqual('abcdefghijkl', Utils.string_style('abcdefghijkl', 3, 12)) #循环1次 def test_string_style_04(self): self.assertEqual('abcdefghijk ', Utils.string_style('abcdefghijk', 3, 12)) #循环2次 def test_string_style_05(self): self.assertEqual('abcdefghij ', Utils.string_style('abcdefghij', 3, 12)) #循环中间次(m) def test_string_style_02(self): self.assertEqual('abcdef ', Utils.string_style('abcdef', 3, 12)) #循环n-1次 def test_string_style_06(self): self.assertEqual('abcd ', Utils.string_style('abcd ', 3, 12)) #循环n次 def test_string_style_03(self): self.assertEqual('abc ', Utils.string_style('abc', 3, 12))
原文链接:https://blog.csdn.net/m0_62835291/article/details/136953377
4.某管理系统中,其中一个业务逻辑接口中实现了商品管理模块中的购物车功能,现根据输入的集合列表和商品对象两个参数实现了购物车添加功能,实现逻辑如下:
- 当向购物车添加商品对象时,购物车集合列表不存在,那么系统会创建购物车集合列表,然后向购物车集合中添加商品信息,并返回商品集合列表。
- 当购物车集合对象为空时,可直接添加商品对象至集合列表中,然后返回商品集合列表。
- 当向购物车添加商品对象,而此商品已存在购物车集合对象列表中时,列表中只会对该商品的数量进行叠加,该商品的其他信息不变,完成操作后返回商品集合列表。
- 当向购物车添加的商品对象,并不存在商品集合列表中,则添加到购物车集合列表中,并返回商品集合列表。
- 请使用基本路径覆盖法 + 简单循环覆盖法的标准规则,对被测源代码 Goods、GoodsService 类中的 shopping_cart 方法设计单元测试用例。并在 GoodsServiceTest 类中完成单元测试代码,Datas 类中提供了测试数据。
from goods import Goods
# 测试数据
class Datas:
goods_list1 = None
goods_list2 = []
g1 = Goods(1, '手机', '华为', 3000, 2)
g2 = Goods(2, '手机', 'oppo', 2800, 2)
g3 = Goods(3, '手机', '小米', 1800, 2)
g4 = Goods(4, '手机', 'vivo', 2600, 2)
g5 = Goods(5, '手机', '荣耀', 1300, 2)
g6 = Goods(6, '手机', '华为', 6000, 2)
g7 = Goods(7, '手机', 'oppo', 3800, 2)
g8 = Goods(8, '手机', '小米', 2000, 2)
g9 = Goods(9, '手机', 'vivo', 3100, 2)
g10 = Goods(10, '手机', '荣耀', 1700, 2)
goods_list3 = [g1, g2, g3, g4, g5, g6, g7, g8, g9]
# 商品管理模块业务逻辑类,本类主要功能描述:
# 1、当向购物车添加商品对象时,购物车集合列表不存在,那么系统会创建购物车集合列表,然后向购物车集合中添加商品信息,并返回商品集合列表。
# 2、当购物车集合对象为空时,可直接添加商品对象至集合列表中,然后返回商品集合列表。
# 3、当向购物车添加商品对象,而此商品已存在购物车集合对象列表中时,列表中只会对该商品的数量进行叠加,该商品的其他信息不变,完成操作后返回商品集合列表。
# 4、当向购物车添加的商品对象,并不存在商品集合列表中,则添加到购物车集合列表中,并返回商品集合列表。
class GoodsService:
# 商品加入购物车
# @param list 购物车列表
# @param goods 商品信息
# @return 购物车列表
def shopping_cart(goods_list, goods):
# 当购物车为 None
if goods_list is None:
# 创建购物车并将商品对象存储到集合列表中
goods_list = [goods]
else:
found = False
for goods1 in goods_list:
# 当购物车中已存在商品和添加的商品一致时,商品数量进行叠加
if goods1.id == goods.id:
goods1.quantity += goods.quantity
found = True
break
# 当添加的商品对象不存在与购物车中时,将商品对象存储到购物车集合列表中
if not found:
goods_list += [goods]
return goods_list
# 商品数据类
class Goods:
def __init__(self, id, name, type, price, quantity):
# 商品编号
self.id = id
# 商品名称
self.name = name
# 商品类型
self.type = type
# 商品价格
self.price = price
# 商品数量
self.quantity = quantity
import unittest
from datas import Datas
from goods_service import GoodsService
# 单元测试
# 1. 请使用简单循环覆盖法对被测源代码 Goods 和 GoodsService 类中的 shopping_cart 方法设计单元测试用例。
# 2. 请在下方 GoodsServiceTest 类中填写单元测试代码内容。
# 3. 请使用 Datas 类中提供的集合列表和商品对象的数据进行测试。
class GoodsServiceTest(unittest.TestCase):
# 当购物车为 None
def test_shopping_cart_01(self):
# TODO 请填写单元测试代码
self.assertEqual(GoodsService.shopping_cart(None, Datas.g1), None)
#循环0次
def test_shopping_cart_02(self):
# TODO 请填写单元测试代码
goods_list2=GoodsService.shopping_cart(Datas.goods_list2, Datas.g1), goods_list1
self.assertEqual(1, Datas.goods_list2[0].id)
self.assertEqual(1, Datas.goods_list2[0].quantity)
#循环1次
def test_shopping_cart_03(self):
goods_list3=GoodsService.shopping_cart(Datas.goods_list3,Datas.g1)
self.assertEqual(1, Datas.goods_list3[0].id)
self.assertEqual(4, Datas.goods_list3[0].quantity)
#循环2次
def test_shopping_cart_04(self):
goods_list3=GoodsService.shopping_cart(Datas.goods_list3,Datas.g2)
self.assertEqual(2, Datas.goods_list3[1].id)
self.assertEqual(4, Datas.goods_list3[1].quantity)
#循环m次
def test_shopping_cart_05(self):
goods_list3=GoodsService.shopping_cart(Datas.goods_list3,Datas.g5)
self.assertEqual(5, Datas.goods_list3[4].id)
self.assertEqual(4, Datas.goods_list3[4].quantity)
#循环n-1次
def test_shopping_cart_06(self):
goods_list3=GoodsService.shopping_cart(Datas.goods_list3,Datas.g8)
self.assertEqual(8, Datas.goods_list3[7].id)
self.assertEqual(4, Datas.goods_list3[7].quantity)
#循环n次
def test_shopping_cart_07(self):
goods_list3=GoodsService.shopping_cart(Datas.goods_list3,Datas.g9)
self.assertEqual(9, Datas.goods_list3[8].id)
self.assertEqual(4, Datas.goods_list3[8].quantity)
#新增商品在购物车列表不存在
def test_shopping_cart_08(self):
goods_list3=GoodsService.shopping_cart(Datas.goods_list3,Datas.g10)
self.assertEqual(10, Datas.goods_list3[9].id)
self.assertEqual(2, Datas.goods_list3[9].quantity)
if __name__ == '__main__':
unittest.main()
原文链接:https://blog.csdn.net/m0_62835291/article/details/136953377
**用法:** assertIsNotNone(testValue, message)
参数: assertIsNotNone()接受以下列出的两个参数并作解释:
- testValue:将测试变量作为输入值以检查是否与None相等
- message:作为测试消息失败时显示的消息的字符串语句。
版权归原作者 菜的睡不着的小赵 所有, 如有侵权,请联系我们删除。