單元測試框架: unittest框架
單元測試框架的基本構造:dom
-全部的case類都必需要繼承 unittest.TestCase
-實例setUp方法(初始化測試數據)和實例tearDown方法(清理測試數據)是每次執行case的時候都會被觸發執行,這兩個方法的構造是無關緊要的。
-全部的case執行都是寫在函數裏面,且函數名稱必須以test開頭
-在單元測試中,多數都是使用的assert系列的驗證方法,不須要手動寫捕獲異常的代碼,框架會自動捕獲
-執行用例只須要執行 unittest.main() 這個方法便可。
#encoding=utf-8 import unittest import random class TestSequenceFunctions(unittest.TestCase): def setUp(self): self.seq = list(range(10)) # 初始化一個遞增序列 print("setup completed!") def test_run(self): # case1 element = random.choice(self.seq) # 從序列seq中隨機選取一個元素 self.assertTrue(element in self.seq) # 驗證隨機元素確實屬於列表中 def test_sth(self): # case2 assert 1 == 2 def tearDown(self): print("tearDown completed") class TestDictValueFormatFunctions(unittest.TestCase): def setUp(self): self.seq = list(range(10)) print("setup is ready!") def test_shuffle(self): random.shuffle(self.seq) # 隨機打亂原seq的順序 self.seq.sort() self.assertEqual(self.seq, list(range(10))) # 這個是判斷是否相等 # 驗證執行函數時拋出了TypeError異常,函數是random.shuffle((1, 2, 3)),元組是不可變的序列類型,沒法打亂排序,會觸發TypeError self.assertRaises(TypeError, random.shuffle, (1, 2, 3)) # 參數順序:錯誤類型, 函數名稱, 函數參數 if __name__ == '__main__': unittest.main() # 執行case須要調用這個方法,這個方式是執行所有的case
執行結果:函數