首页 > 编程知识 正文

Python常用断言函数用法介绍

时间:2023-11-21 12:56:02 阅读:291039 作者:FHWO

本文将详细介绍Python中常用的断言函数,让大家了解这些函数的作用及使用方法,以便于进行代码测试和调试。

一、assertEqual函数

1、assertEqual函数是Python中unittest模块中的一个方法,用于判断两个元素是否相同。

    def assertEqual(self, first, second, msg=None):
        """
        Fail if the two objects are unequal as determined by the '==' operator.
        """
        if not first == second:
            standardMsg = '%s != %s' % (safe_repr(first), safe_repr(second))
            msg = self._formatMessage(msg, standardMsg)
            raise self.failureException(msg)

2、assertEqual方法在比较元素是否相等时,会用到“==”操作符。如果两个元素不相等,则assertEqual方法会通过raise语句抛出一个异常。

二、assertTrue函数

1、assertTrue函数同样是Python中unittest模块中的一个方法,用于判断一个元素是否为True。

    def assertTrue(self, expr, msg=None):
        """Check that the expression is true."""
        if not expr:
            msg = self._formatMessage(msg, "%s is not true" % safe_repr(expr))
            raise self.failureException(msg)

2、assertTrue方法会判断一个表达式的值是否为True,如果不是True,则会抛出一个异常。

三、assertIn函数

1、assertIn函数同样是Python中unittest模块中的一个方法,用于判断一个元素是否包含在另一个元素中。

    def assertIn(self, member, container, msg=None):
        """
        Just like self.assertTrue(a in b), but with a nicer default message.
        """
        if member not in container:
            msg = self._formatMessage(msg, "%s not found in %s" % (safe_repr(member), safe_repr(container)))
            raise self.failureException(msg)

2、assertIn方法会判断一个元素是否包含在另一个元素中。如果不包含,则会抛出一个异常。

四、assertRaises函数

1、assertRaises函数同样是Python中unittest模块中的一个方法,用于判断一个指定的异常是否会被抛出。

    def assertRaises(self, excClass, callableObj=None, *args, **kwargs):
        """
        Fail unless an exception of class excClass is thrown
        by callableObj when invoked with arguments args and keyword
        arguments kwargs. If a different type of exception is thrown,
        it will not be caught, and the test case will be deemed to have
        suffered an error, exactly as for an unhandled exception.
        """
        context = _AssertRaisesContext(excClass, self)
        if callableObj is None:
            return context
        with context:
            callableObj(*args, **kwargs)

2、assertRaises方法会判断一个指定的异常是否会被抛出。如果没有抛出指定的异常,则会抛出一个异常。

五、assertAlmostEqual函数

1、assertAlmostEqual函数同样是Python中unittest模块中的一个方法,用于判断两个浮点数是否在指定的精度范围内相等。

    def assertAlmostEqual(self, first, second, places=None, msg=None, delta=None):
        """
        Fail if the two objects are unequal as determined by their difference rounded to the given
        number of decimal places (default 7) and comparing to zero, or by comparing that the
        difference between the two objects is more than the given delta.
        Note that decimal places (from zero) are usually not the same as significant digits
        (measured from the most signifcant digit).
        """
        if first == second:
            return
        if delta is not None and abs(first-second) <= delta:
            return
        if places is None:
            places = self.DEFAULT_PRECISION
        if round(abs(second-first), places) == 0:
            return
        if msg is None:
            msg = '%r != %r within %r places' % (first, second, places)
        raise self.failureException(msg)

2、assertAlmostEqual方法会判断两个浮点数是否在指定的精度范围内相等。如果不相等,则会抛出一个异常。

六、小结

本文详细介绍了Python中常用的断言函数,包括assertEqual、assertTrue、assertIn、assertRaises和assertAlmostEqual。这些断言函数能够帮助程序员进行代码测试和调试,提高程序的稳定性和正确性。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。