例如:以加减乘除法为例:
方法为: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单元测试框架重新编写测试用例:
(1)创建一个测试类,必须继承unnittest模块的TestCase类
(2)创建一个测试方法,必须以"test"开头
(3)调用被测试类,传入初始化数据
(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:一条运行跳过的测试用例