zoukankan      html  css  js  c++  java
  • unittest_assert断言(4)

    测试用例是否测试通过是通过将预期结果与实际结果做比较来判定的,那代码中怎么来判定用例是否通过呢?在python中这种判定的方法就叫做断言,断言可以使用python的assert方法,也可以使用unittest框架提供的一系列断言方法。

    unittest常用断言方法如下

    方法 说明
    assertEqual(arg1, arg2, msg=None) 验证arg1=arg2,不等则fail
    assertNotEqual(arg1, arg2, msg=None) 验证arg1 != arg2, 相等则fail
    assertTrue(expr, msg=None) 验证expr是true,如果为false,则fail
    assertFalse(expr,msg=None) 验证expr是false,如果为true,则fail
    assertIsNone(expr, msg=None) 验证expr是None,不是则fail
    assertIsNotNone(expr, msg=None) 验证expr不是None,是则fail
    assertIn(arg1, arg2, msg=None) 验证arg1是arg2的子串,不是则fail
    assertNotIn(arg1, arg2, msg=None) 验证arg1不是arg2的子串,是则fail
    assertIs(arg1, arg2, msg=None) 验证arg1、arg2是同一个对象,不是则fail
    assertIsNot(arg1, arg2, msg=None) 验证arg1、arg2不是同一个对象,是则fail
    assertGreater(arg1, arg2, msg=None) 验证arg1大于arg2,不是则fail
    assertGreaterEqual(arg1, arg2, msg=None) 验证arg1大于等于arg2,不是则fail
    assertLess(arg1, arg2, msg=None) 验证arg1小于arg2,不是则fail
    assertLessEqual(arg1, arg2, msg=None) 验证arg1小于等于arg2,不是则fail
    assertRaises(expected_exception) 使用with语句,断言执行的代码快会抛指定异常

    代码如下

    import unittest
    
    
    class Demo(unittest.TestCase):
    
        def raise_value_error(self):
            raise ValueError
    
        def test_assert(self):
            a, b = 1, 2
            c = None
            d = True
            e = False
            f = [1, 3, 4]
            g = h = 5
    
            # >>比较断言
            # 断言相等
            assert a + b == 3
            self.assertEqual(a+b, 3)
            # 断言不等
            assert a + b != 4
            self.assertNotEqual(a+b, 4)
    
            # >>空值断言
            # 断言非空
            assert a is not None
            self.assertIsNotNone(a)
            # 断言为空
            assert c is None
            self.assertIsNone(c)
    
            # >>布尔值断言
            # 断言为True
            assert d is True
            self.assertTrue(d)
            # 断言为False
            assert e is False
            self.assertFalse(e)
    
            # >>包含断言
            # 断言包含在内
            assert a in f
            self.assertIn(a, f)
            # 断言不包含在内
            assert b not in f
            self.assertNotIn(b, f)
    
            # >>对象断言
            # 断言是同一个对象
            assert g is h
            self.assertIs(g, h)
            # 断言不是同一个对象
            assert a is not h
            self.assertIsNot(a, h)
    
            # >>断言预期异常
            with self.assertRaises(ValueError):
                self.raise_value_error()
    
    
    if __name__ == '__main__':
        unittest.main()
  • 相关阅读:
    ACM HDU 3910 Liang Guo Sha(数学题,读懂题目)
    防止 7Zip 生成的 ZIP 文件在 Mac OS X 下出现乱码
    NYOJ 506
    Scanner
    String 与StringBuilder
    基于JAVA的聊天室开发
    PS加粗字体
    MySQL相关命令
    Matlab中数据处理和多项式插值与曲线拟合
    dos下进入某一文件
  • 原文地址:https://www.cnblogs.com/testlearn/p/14425497.html
Copyright © 2011-2022 走看看