欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

unittest篇-断言详解

程序员文章站 2022-03-15 15:03:50
前言我们写case的时候,需要写断言,我们使用unittest框架时,也需要了解它都有一些什么断言,才能很快的进行校验。1、测试过程中为什么需要做断言,断言是机器判定case是否通过的标准,检验预期结果与实际结果是否统一的标准。2、在上一篇unittest篇1-简介的博客中,写了一个简单的例子,例子中使用了self.assertEqual(),做断言,大家可以看看那篇博客。3、unittest有自己单独的断言,与python自带的断言使用方法不一样。unittest断言unittest单元测...

前言

我们写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

相关标签: unittest