测开之路五十六:实现类似unittest的断言
Posted zhongyehai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了测开之路五十六:实现类似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)
以上是关于测开之路五十六:实现类似unittest的断言的主要内容,如果未能解决你的问题,请参考以下文章
测开之路一百五十二:基于jquery的ajax实现(loadgetajax)
测开之路一百五十三:ajax之loadgetajax在项目中的体现
测开之路一百五十五:jquery-validation前台数据验证