自動化三:單元測試框架一

單元測試框架: 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

 

執行結果:函數

相關文章
相關標籤/搜索