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)
原文地址:https://www.cnblogs.com/zhongyehai/p/11087289.html
时间: 2024-11-09 21:29:03