例如:以加減乘除法爲例:算法
方法爲: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:一條運行跳過的測試用例