单元测试框架与自动化测试框架

单元测试框架

项目创建

被测代码

示例代码

"""
__author__ = '霍格沃兹测试开发学社'
__desc__ = '更多测试开发技术探讨,请访问:https://ceshiren.com/t/topic/15860'
"""


class HeroManagement:
    """
    游戏中的英雄管理
    """
    def __init__(self):
        self.hero_list = []

    def update_hero(self, hero_name, hero_volume):

        for i in self.hero_list:
            if i.get("name") == hero_name:
                i["volume"] = hero_volume
                return i
        return False

    def delete_hero(self, hero_name):
        """
        :param hero_list:  英雄列表信息
        :param hero_name:  英雄的名字
        :return:
        """
        for i in self.hero_list:
            if hero_name == i["name"]:
                self.hero_list.remove(i)
                return self.hero_list
        return False

    def create_hero(self, hero_name, hero_volume, hero_power):
        if hero_volume<=0 or hero_volume >= 100:
            return False
        if hero_power <=0:
            return False
        hero_info = {"name": hero_name, "volume": hero_volume, "power": hero_power}
        self.hero_list.append(hero_info)
        return True

    def find_hero(self, res):
        """
        如果查询到英雄,则返回英雄信息。
        如果没有查询到英雄,则返回False
        :param res:
        :return:
        """
        # 遍历所有的英雄信息,
        for i in self.hero_list:
            if res == i["name"]:
                return i
        return False

IDE的自动生成与重构

利用人工智能(ChatGPT) 自动分析代码画图

这是一段python代码

from src.hero.hero import Hero


class HeroManager:
    def __init__(self):
        self.hero_list: list[Hero] = []

    def add(self, hero: Hero):
        hero_name_list = [hero.name for hero in self.hero_list]
        # bug 如果一个英雄名字相同,但是power 和 volume不同,是可以被加进去的
        if hero.name not in hero_name_list:
            self.hero_list.append(hero)
        # self.hero_list.append(hero)

    def delete(self, name):
        for i in range(len(self.hero_list)):
            if self.hero_list[i].name == name:
                self.hero_list.remove(self.hero_list[i])
                return

    def update(self, hero: Hero):
        # for item in self.hero_list:
        #     if item.name == hero.name:
        #         item = hero

        for i in range(len(self.hero_list)):
            if self.hero_list[i].name == hero.name:
                self.hero_list[i] = hero

    def find(self, name):
        for item in self.hero_list:
            if item.name == name:
                return item

请帮我画一份流程图,使用plantuml的活动图格式,以markdown返回

实战练习

自动化测试框架

课后练习

https://material.hogwarts.ceshiren.com/resource/pytest_test_framework/L3/homework/英雄管理系统实战.L3.html

相关代码

1 Like

麻烦老师了

有两个问题:
1.报告里 像这种参数可以取消显示吗


2.还有这两个参数可以不在报告里显示吗