unittest篇2-断言详解

前言

我们写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相关的内容!
谢谢大家,欢迎评论区进行交流

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值