zoukankan      html  css  js  c++  java
  • 测开之路五十六:实现类似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)
  • 相关阅读:
    MyGeneration:开源的代码生成工具
    有了NHibernate就不再需要DAO了
    在vs编辑器里走来走去的快捷键
    asp.net的程序的一种简化结构
    取得gridview的行值
    asp.net中MVC模式的简单实现
    美味书签上的信息质量要好于博客RSS
    DAO已死,至少是中小型项目是这样
    免费好看的msdn中文杂志电子版
    Rhino Mocks是很不错的开源测试框架
  • 原文地址:https://www.cnblogs.com/zhongyehai/p/11087289.html
Copyright © 2011-2022 走看看