3 各种断言方法

unittest断言

断言是测试用例的核心。我们使用assertEqual()来判断预期结果,用assertTrue()和assertFalse来做是非判断,以及用assertRaises()来判断预期的异常是否有被抛出。这些unittest提供的以assert开头的方法就是断言,一般情况下,每个测试方法里都必须有断言,unittest支持各种断言方法。

import unittest

class Test(unittest.TestCase):
  def setUp(self):
    print('hello')

  def tearDown(self):
    print('bye')

  def test_001(self):
    self.assertEqual('1', '1')

  def test_002(self):
    self.assertEqual('0', '1')

if __name__ == "__main__":
  unittest.main()
断言列表

官方文档

方法 检查点
断言方法 含义
assertEqual(a, b) a == b
assertNotEqual(a, b) a != b
assertTrue(x) bool(x) is True
assertFalse(x) bool(x) is False
assertIs(a, b) a is b
assertIsNot(a, b) a is not b
assertIsNone(x) x is None
assertIsNotNone(x) x is not None
assertIn(a, b) a in b
assertNotIn(a, b) a not in b
assertIsInstance(a, b) isinstance(a, b)
assertNotIsInstance(a, b) not isinstance(a, b)
assertRaises(exc, fun, args, *kwds) fun(args, *kwds) raises exc
assertRaisesRegexp(exc, r, fun, args, *kwds) fun(args, *kwds) raises exc and the message matches egex r
assertAlmostEqual(a, b) round(a-b, 7) == 0
assertNotAlmostEqual(a, b) round(a-b, 7) != 0
assertGreater(a, b) a > b 2.7
assertGreaterEqual(a, b) a >= b
assertLess(a, b) a < b
assertLessEqual(a, b) a <= b
assertRegexpMatches(s, r) r.search(s)
assertNotRegexpMatches(s, r) not r.search(s)
assertItemsEqual(a, b) sorted(a) == sorted(b) 也支持unhashable对象
assertDictContainsSubset(a, b) a里面所有的键值对都在b中存在

自己动手
大家可以自己动手亲自尝试使用这些断言方法。