Unittest 是 Python 自带的一个单元测试框架,其中最重要的是断言(assertion)。断言是一种检查代码运行结果是否符合预期的机制,它用于验证代码是否正确地执行了某些操作或是否生成了期望的结果。

下面介绍 unittest 中常用的断言及其使用方法:

  1. assertEqual(first, second, msg=None):判断两个值是否相等。如果相等,则测试通过;否则,测试失败。其中,msg 是一个可选参数,用于在断言失败时输出自定义的错误信息。

  2. assertNotEqual(first, second, msg=None):判断两个值是否不相等。如果不相等,则测试通过;否则,测试失败。

  3. assertTrue(expr, msg=None):判断表达式是否为 True。如果为 True,则测试通过;否则,测试失败。

  4. assertFalse(expr, msg=None):判断表达式是否为 False。如果为 False,则测试通过;否则,测试失败。

  5. assertIs(a, b, msg=None):判断两个对象是否是同一个对象。如果是同一个对象,则测试通过;否则,测试失败。

  6. assertIsNot(a, b, msg=None):判断两个对象是否不是同一个对象。如果不是同一个对象,则测试通过;否则,测试失败。

  7. assertIsNone(expr, msg=None):判断表达式是否为 None。如果为 None,则测试通过;否则,测试失败。

  8. assertIsNotNone(expr, msg=None):判断表达式是否不为 None。如果不为 None,则测试通过;否则,测试失败。

  9. assertIn(a, b, msg=None):判断 a 是否在 b 中。如果在 b 中,则测试通过;否则,测试失败。

  10. assertNotIn(a, b, msg=None):判断 a 是否不在 b 中。如果不在 b 中,则测试通过;否则,测试失败。

  11. assertIsInstance(obj, cls, msg=None):判断 obj 是否是 cls 的实例。如果是,则测试通过;否则,测试失败。

  12. assertNotIsInstance(obj, cls, msg=None):判断 obj 是否不是 cls 的实例。如果不是,则测试通过;否则,测试失败。

下面是一个简单的示例代码:

import unittest

class MyTest(unittest.TestCase):
    def test_add(self):
        self.assertEqual(1+1, 2)
    
    def test_subtract(self):
        self.assertNotEqual(2-1, 1)
    
    def test_is(self):
        a = [1, 2, 3]
        b = a
        self.assertIs(a, b)
    
    def test_is_not(self):
        a = [1, 2, 3]
        b = [1, 2, 3]
        self.assertIsNot(a, b)
    
    
    
if __name__ == '__main__':
    unittest.main()

该代码中定义了一个 MyTest 类,其中包含了四个测试方法。在每个测试方法中,使用不同的断言来验证代码的正确性。最后,通过unittest.main()函数来运行测试。如果所有测试都通过,则输出 OK;否则,输出测试失败的详细信息。

Python Unittest 断言详解及使用示例

原文地址: https://www.cveoy.top/t/topic/n8D9 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录