前言

我们写case的时候,需要写断言,我们使用unittest框架时,也需要了解它都有一些什么断言,才能很快的进行校验。

  • 1、测试过程中为什么需要做断言,断言是机器判定case是否通过的标准,检验预期结果与实际结果是否统一的标准。
  • 2、在上一篇unittest篇1-简介的博客中,写了一个简单的例子,例子中使用了self.assertEqual(),做断言,大家可以看看那篇博客。
  • 3、unittest有自己单独的断言,与python自带的断言使用方法不一样。

unittest断言

unittest单元测试框架提供了一整套内置的断言方法:

  • 1、如果断言失败,抛出AssertionError的错误,case为失败状态;
  • 2、如果断言成功,会标识case为成功状态
方法 检查 描述
assertEqual(a, b) a == b 验证a是否等于b
assertNotEqual(a, b) a != b 验证a是否不等于b
assertTrue(x) bool(x) is True 验证x是否为ture
assertFalse(x) bool(x) is False 验证x是否为flase
assertIs(a, b) a is b 验证a,b是否为同一个对象
assertIsNot(a, b) a is not b 验证a,b不是同一个对象
assertIsNone(x) x is None 验证x是否是None
assertIsNotNone(x) x is not None 验证x是否非None
assertIn(a, b) a in b 验证a是否是b的子串
assertNotIn(a, b) a not in b 验证a是否非b的子串
assertIsInstance(a, b) isinstance(a, b) 验证a是否是b的实例
assertNotIsInstance(a, b) not isinstance(a, b) 验证a是否不是b的实例

简单运用-1

import unittest
class TestDemoOne(unittest.TestCase):

    def testassertdemo(self):  # 测试用例要以test开头
        self.assertIn(1, [1, 2,3])
        self.assertNotIn(1, [2, 3,4])
        self.assertEqual('1', '1')
        self.assertNotEqual(1, 2)
        self.assertTrue(2 == 2)

if __name__ == '__main__':
    unittest.main()

方法 检查
assertMultiLineEqual(a, b) string
assertSequenceEqual(a, b) sequences
assertListEqual(a, b) list
assertTupleEqual(a, b) tuple
assertSetEqual(a, b) set
assertDictEqual(a, b) dict

简单运用-2

import unittest
class TestDemoOne(unittest.TestCase):

    def testassertdemo_1(self):
        self.assertDictEqual({ "code": 2}, { "code": 2})
        self.assertListEqual([1, 2], [1, 2])
        self.assertMultiLineEqual("name", "name")

if __name__ == '__main__':
    unittest.main()
方法 检查
assertAlmostEqual(a, b) round(a-b, 7) == 0
assertNotAlmostEqual(a, b) round(a-b, 7) != 0
assertGreater(a, b) a > b
assertGreaterEqual(a, b) a >= b
assertLess(a, b) a < b
assertLessEqual(a, b) a <= b
assertRegex(s, r) r.search(s)
assertNotRegex(s, r) not r.search(s)
assertCountEqual(a, b) a和b具有相同编号的相同元素,而不管其顺序如何。

简单运用-3

import unittest
class TestDemoOne(unittest.TestCase):

    def testassertdemo_2(self):
        self.assertGreater(2, 0)
        self.assertGreaterEqual(2, 0)
        self.assertNotRegex("1", "122")  # 正则是否匹配
        self.assertCountEqual("12", "12")

if __name__ == '__main__':
    unittest.main()
    

好了,跟着博主一起学习unittest框架,从入门到进阶之路开冲!
后续有时间会接着分享unittest相关的内容!
谢谢大家,欢迎评论区进行交流

本文地址:https://blog.csdn.net/m0_47127594/article/details/112624157