欢迎访问宙启技术站
智能推送

Python中unittestTestResult()的断言方法和用法

发布时间:2024-01-14 23:37:28

在Python中的unittest模块中,unittest.TestResult类是用来存储测试结果以及执行断言的类。在该类中,有一些用来执行断言的方法。

断言是用来检查测试结果是否符合预期的工具,当测试结果不符合预期时,会抛出异常。unittest.TestResult类中提供了一些常用的断言方法,以下是断言方法和用法的详细说明和示例:

1. assertEqual(a, b, msg=None)

该方法用来断言a和b是否相等,如果不相等则抛出异常,并可以指定错误消息msg。

示例:

   import unittest
   
   class MyTest(unittest.TestCase):
       def test_equal(self):
           self.assertEqual(1 + 1, 2, "Error: 1 + 1 is not equal to 2")
   
   if __name__ == '__main__':
       unittest.main()
   

2. assertNotEqual(a, b, msg=None)

该方法用来断言a和b是否不相等,如果相等则抛出异常,并可以指定错误消息msg。

示例:

   import unittest
   
   class MyTest(unittest.TestCase):
       def test_not_equal(self):
           self.assertNotEqual(1 + 1, 3, "Error: 1 + 1 is equal to 3")
   
   if __name__ == '__main__':
       unittest.main()
   

3. assertTrue(expr, msg=None)

该方法用来断言expr是否为True,如果不为True则抛出异常,并可以指定错误消息msg。

示例:

   import unittest
   
   class MyTest(unittest.TestCase):
       def test_true(self):
           self.assertTrue(1 < 2, "Error: 1 is not less than 2")
   
   if __name__ == '__main__':
       unittest.main()
   

4. assertFalse(expr, msg=None)

该方法用来断言expr是否为False,如果不为False则抛出异常,并可以指定错误消息msg。

示例:

   import unittest
   
   class MyTest(unittest.TestCase):
       def test_false(self):
           self.assertFalse(1 > 2, "Error: 1 is not greater than 2")
   
   if __name__ == '__main__':
       unittest.main()
   

5. assertIs(a, b, msg=None)

该方法用来断言a和b是同一个对象,如果不是则抛出异常,并可以指定错误消息msg。

示例:

   import unittest
   
   class MyTest(unittest.TestCase):
       def test_is(self):
           a = [1, 2, 3]
           b = a
           self.assertIs(a, b, "Error: a is not the same as b")
   
   if __name__ == '__main__':
       unittest.main()
   

6. assertIsNot(a, b, msg=None)

该方法用来断言a和b不是同一个对象,如果是则抛出异常,并可以指定错误消息msg。

示例:

   import unittest
   
   class MyTest(unittest.TestCase):
       def test_is_not(self):
           a = [1, 2, 3]
           b = [1, 2, 3]
           self.assertIsNot(a, b, "Error: a is the same as b")
   
   if __name__ == '__main__':
       unittest.main()
   

7. assertIsNone(expr, msg=None)

该方法用来断言expr是否为None,如果不为None则抛出异常,并可以指定错误消息msg。

示例:

   import unittest
   
   class MyTest(unittest.TestCase):
       def test_none(self):
           a = None
           self.assertIsNone(a, "Error: a is not None")
   
   if __name__ == '__main__':
       unittest.main()
   

8. assertIsNotNone(expr, msg=None)

该方法用来断言expr不为None,如果为None则抛出异常,并可以指定错误消息msg。

示例:

   import unittest
   
   class MyTest(unittest.TestCase):
       def test_not_none(self):
           a = 1
           self.assertIsNotNone(a, "Error: a is None")
   
   if __name__ == '__main__':
       unittest.main()
   

以上是一些unittest.TestResult类中常用的断言方法和用法的例子,断言方法的使用可以根据具体的测试场景和需求来选择适合的方法。在实际的测试过程中,使用断言方法可以方便地判断测试结果是否符合预期,并提供相应的错误信息,便于定位和解决问题。