例如:以加减乘除法为例:算法
方法为:calculator.py框架
# 加减乘除算法 class Calculator: def __init__(self, x, y): self.x = int(x) self.y = int(y) # 加法 def add(self): return self.x + self.y # 减法 def sub(self): return self.x - self.y # 乘法 def mul(self): return self.x * self.y # 除法 def div(self): return self.x / self.y
编写测试用例为:test_calculator.py函数
from unittest1.calculator import Calculator def test_add(): c = Calculator(3, 5) result = c.add() assert result == 8, '加法运算失败!' def test_sub(): c = Calculator(7, 2) result = c.sub() assert result == 5, '减法运算失败!' def test_mul(): c = Calculator(5, 9) result = c.mul() assert result == 45, '乘法运算失败!' def test_div(): c = Calculator(9, 3) result = c.div() assert result == 3, '除法运算失败' if __name__ == '__main__': test_add() test_sub() test_mul() test_div()
运行结果为:单元测试
局限性:当前面的测试函数运行失败后,后面的测试函数再也不执行,致使执行结果没法统计测试
用unittest单元测试框架从新编写测试用例:spa
(1)建立一个测试类,必须继承unnittest模块的TestCase类3d
(2)建立一个测试方法,必须以"test"开头code
(3)调用被测试类,传入初始化数据blog
(4)调用被测试方法,获得计算结果。用assertEqual()断言是否与预期结果相同。继承
(5)调用unnitest的main()执行测试用例
上面例子,用unnittest编写测试用例以下:
import unittest from unittest1.calculator import Calculator class TestCalculator(unittest.TestCase): def test_add(self): c = Calculator(3, 5) result = c.add() self.assertEqual(result, 8) def test_sub(self): c = Calculator(5, 6) result = c.sub() self.assertEqual(result, -1) def test_mul(self): c = Calculator(5, 6) result = c.mul() self.assertEqual(result, 30) def test_div(self): c = Calculator(9, 3) result = c.div() self.assertEqual(result,3) if __name__ == '__main__': unittest.main()
运行结果 :
.:一条运行经过的测试用例
F:一条运行失败的测试用例
E:一条运行错误的测试用例
s:一条运行跳过的测试用例