Python 单元测试,assert断言。单元测试案例,unittest.TestCase

demo.py(assert断言):

# coding:utf-8

def divide(num1, num2):
    """除法"""
    assert isinstance(num1, int)  # 断言。 如果为真,继续向下执行;如果为假,抛出AssertionError异常
    assert isinstance(num2, int), "异常提示信息"   # 第二个元素表示AssertionError异常的提示信息
    assert num2 != 0, "分母不能为0"

    print num1 / num2


if __name__ == '__main__':
    # divide("a", "b")
    divide(100, "b")
    # divide(100, 0)
    divide(100, 20)

单元测试案例。 unittest组件

test.py(定义测试案例类):

import unittest  # 导入


# 定义测试案例类。(继承TestCase)
class TestClass(unittest.TestCase):

    # 该方法会首先执行,相当于做测试前的准备工作。 (方法名固定)
    def setUp(self):
        pass

    # 该方法会在测试代码执行完成后执行,相当于做测试后的扫尾工作。 (方法名固定)
    def tearDown(self):
        pass
    
    # 测试代码。 (方法名必须以"test_"开头)
    def test_xxx(self):
        # 可以使用断言。
        # self.assertEqual()
        # self.assertIn()
        pass


if __name__ == '__main__':
    unittest.main()  # 进行测试

unittest组件中常用的断言方法:  

序号 断言方法 描述
1 assertEqual(arg1, arg2, msg=None) 验证arg1=arg2,不等则fail
2 assertNotEqual(arg1, arg2, msg=None) 验证arg1 != arg2, 相等则fail
3 assertTrue(expr, msg=None) 验证expr是true,如果为false,则fail
4 assertFalse(expr,msg=None) 验证expr是false,如果为true,则fail
5 assertIs(arg1, arg2, msg=None) 验证arg1、arg2是同一个对象,不是则fail
6 assertIsNot(arg1, arg2, msg=None) 验证arg1、arg2不是同一个对象,是则fail
7 assertIsNone(expr, msg=None) 验证expr是None,不是则fail
8 assertIsNotNone(expr, msg=None) 验证expr不是None,是则fail
9 assertIn(arg1, arg2, msg=None) 验证arg1是arg2的子串,不是则fail
10 assertNotIn(arg1, arg2, msg=None) 验证arg1不是arg2的子串,是则fail
11 assertIsInstance(obj, cls, msg=None) 验证obj是cls的实例,不是则fail
12 assertNotIsInstance(obj, cls, msg=None) 验证obj不是cls的实例,是则fail

猜你喜欢

转载自blog.csdn.net/houyanhua1/article/details/85676910