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()
  • 相关阅读:
    克服 iOS HTML5 音频的局限
    oracle__删除重复记录__三种方法及总结(转载百度文库)
    Oracle 字符集
    无法通过网页进入em
    Ubuntu 12.04(32位)安装Oracle 11g(32位)全过程以及几乎所有问题的解决办法
    正则表达式30分钟入门教程
    linux下安装jdk
    QTP相关书籍
    假的数论gcd,真的记忆化搜索(Codeforce 1070- A. Find a Number)
    搜索基础_HDU1312_dfs_递归+stack实现+bfs_queue实现
  • 原文地址:https://www.cnblogs.com/testlearn/p/14425497.html
Copyright © 2011-2022 走看看