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 |