unittest篇-断言详解
程序员文章站
2022-06-26 17:07:31
前言我们写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