这期知识点好多,脑袋要炸了~
首先是要被测试的文件代码如下:
(一定要注意缩进!!!本人就是没有注意缩进导致测试时找不到待测对象浪费好长时间qwq)
class ShoppingList: """初始化购物清单,shopping_list是字典类型,把shopping_list属性赋值为传入的字典,字典里包含商品名和商品对应价格包含商品名和对应价格 例子:{“牙刷”:5,“沐浴露”:15,“电池”:7}""" def __init__(self,shopping_list): self.shopping_list=shopping_list """返回购物清单上有多少项商品""" def get_item_count(self): return len(self.shopping_list) """返回商品购物清单商品价格总额数字""" def get_total_price(self): total_price=0 for price in self.shopping_list.values(): total_price+=price return total_pricez
- 在同根目录下新建py文件,命名以test_开头更加规范
- 首先要引用unittest库:import unittest
- 然后是:from 测试文件名 import 测试类名
- 然后创建测试类:class Test+类名(//这样命名更加规范)(unittest.TestCase): 表示引用unittst类下的TestCase子类
- 定义方法:首先定义一个setUp()方法,然后创建测试对象(//减少代码冗余)
- 创建格式为self.被测试类中的字典名=类名(字典内容)(//这里举例为字典,values)
- 再定义测试方法:def test_被测试方法名():
self.assertEqual(setUp方法里对象名.被测试方法名(),应返回数值)
代码如下:
import unittest from py_1 import ShoppingList class TestShoppingList(unittest.TestCase): def setUp(self): self.shopping_list = ShoppingList({"纸巾": 8, "帽子": 30, "拖鞋": 15}) #使用setUp方法创建测试对象作为属性,减少代码重复, def test_get_item_count(self): self.assertEqual(self.shopping_list.get_item_count(),3) def test_get_total_price(self): self.assertEqual(self.shopping_list.get_total_price(),53)
测试代码编写好后,在测试终端输入:python -m unittest进行测试。执行两条均成功为··,第一个失败则为F·
(终端:在pycharm页面下方点击Terminal进入local终端)