• 测开之路五十六:实现类似unittest的断言


    import inspect


    class Case(object):
    """ 实现断言 """

    def __init__(self):
    self.result = {} # 存断言的结果

    def _assert(self, expression, message):
    """ 真正执行断言的函数 """
    """
    [2][1]二维数组,以a调b时b调c为例
    第一个下标
    如果是0,则代表当前函数(c),
    如果是1,代表谁调的函数(b)
    如果是2,代表谁调的函数(a)
    ···
    第二个下标
    如果是1,代表当前文件
    如果是2,代表文件执行到多少行了
    如果是3,代表当前执行的函数名
    如果是4,代表当前执行的这块代码
    ···
    """
    file = inspect.stack()[2][1]
    line = inspect.stack()[2][2]
    func = inspect.stack()[2][3]
    code = inspect.stack()[2][4]
    self.result.setdefault(func, {
    'file': file,
    'line': line,
    'func': func,
    'code': code,
    'result': {
    'status': expression,
    'message': message
    }
    })
    if not expression:
    print(message) # 断言失败打印失败信息
    # raise AssertionError(message) # 断言失败抛异常

    def assertEqual(self, first, second, message=''):
    self._assert(first == second, message)

    def assertNotEqual(self, first, second, message=''):
    self._assert(first != second, message)

    def assertIn(self, first, second, message=''):
    self._assert(first in second, message)

    def assertNotIn(self, first, second, message=''):
    self._assert(first not in second, message)

    def assertIs(self, first, second, message=''):
    self._assert(first is second, message)

    def assertNotIs(self, first, second, message=''):
    self._assert(first is not second, message)

    def assertNone(self, first, message=''):
    self._assert(first is None, message)

    def assertNotNone(self, first, message=''):
    self._assert(first is not None, message)

    def assertTrue(self, first, message=''):
    self._assert(bool(first) == True, message)

    def assertFalse(self, first, message=''):
    self._assert(bool(first) == False, message)
  • 相关阅读:
    排序算法之选择排序
    聊聊索引失效的10种场景,太坑了
    tensorflow2.7M1安装依赖openblas问题
    mybatis 拦截sql修改
    Spring 常见面试题
    centos7 安装Development Tools
    centos7 修改mac地址
    .net framework 使用Apollo 配置中心
    .net core (.net6) 读取配置文件 appsettings.json
    C#.NET FRAMEWORK XML私钥转PKCS1,PKCS8
  • 原文地址:https://www.cnblogs.com/zhongyehai/p/11087289.html
Copyright © 2020-2023  润新知