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;否则,输出测试失败的详细信息

详细介绍一下unittest的断言及使用方法

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

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