Python中unittestTestResult()的断言方法和用法
在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类中常用的断言方法和用法的例子,断言方法的使用可以根据具体的测试场景和需求来选择适合的方法。在实际的测试过程中,使用断言方法可以方便地判断测试结果是否符合预期,并提供相应的错误信息,便于定位和解决问题。
