【Python】unittest-1
阿新 • • 發佈:2018-05-27
span 一個點 and python path ear ssm color self.
一、Unittest 單元測試 將測試結果和期望值作對比
(1) 繼承
(2) 引用包
(3) 執行一次test就會調用一次setup和tearDown
(4) 類名以test開頭
(5) 斷言異常
(6) 有一個點表示通過一個測試用例
二、如果有一個單元測試執行失敗,拋異常或斷言失敗,依然會被執行。斷言失敗會顯示E
凡是以test開頭的方法都是測試方法,反之不是,測試時候不會執行。其中,unittest.TestCase提供很多內置的條件判斷,我們可以調用這些方法斷言輸出是否是我們所預計的。
一般分為兩種,一種是assertEqual():斷言某兩個結果是否一致。一種是assertRaises():斷言是否是期待拋出的指定錯誤類型。
另外,可以通過在單元測試中增加兩個特殊函數setUp()和tearDown()函數,已實現在每調用一個測試方法的前後分別執行指定的動作,其中setUp是在測試函數調用前執行,tearDown是在之後執行,每次執行用例時都會: setUp->test_case->tearDown ;也就是說可以使用setUp和tearDown做每個用例的環境初始化
dome1:
每次執行用例時都會: setUp->test_case->tearDown ;也就是說可以使用setUp和tearDown做每個用例的環境初始化
1 import unittest 2 3 4class MyTestCase(unittest.TestCase): 5 # 預置環境 6 def setUp(self): 7 print ‘開始執行‘ 8 9 # 清理環境 10 def tearDown(self): 11 print ‘結束執行‘ 12 13 # 測試用例 14 def test_case1(self): 15 print ‘用例1‘ 16 17 # 測試用例 18 def test_case2(self):19 print ‘用例2‘ 20 21 if __name__ == ‘__main__‘: 22 unittest.main()
dome2:
每個class用一次,setUpClass->test_case1->test_case2->tearDownClass;也就是說使用setUpClass、tearDownClass可以做所有用例的前置初始化和結束
1 import unittest 2 3 4 class MyTestCase(unittest.TestCase): 5 @classmethod 6 def setUpClass(cls): 7 print ‘開始執行‘ 8 9 @classmethod 10 def tearDownClass(cls): 11 print ‘結束執行‘ 12 13 # 測試用例 14 def test_case1(self): 15 print ‘用例1‘ 16 17 # 測試用例 18 def test_case2(self): 19 print ‘用例2‘ 20 21 if __name__ == ‘__main__‘: 22 unittest.main()
三、unittest練習
#寫一個讀文件的類,裏面有個方法可以讀取文件的全部內容。
#寫個單元測試,斷言文件中包含關鍵字"glory road"
main.py
1 import unittest 2 import random 3 from handle_file import HandleFile 4 5 class TestSequenceFunctions(unittest.TestCase): 6 def test_run(self): 7 content = HandleFile.read_file("e:\\test4\\ip.txt") 8 self.assertTrue("glory road" in content) 9 10 if __name__ == "__main__": 11 unittest.main()
handle_file.py
1 import os 2 3 class HandleFile(): 4 @staticmethod 5 def read_file(file_path): 6 if os.path.exists(file_path): 7 with open(file_path) as f: 8 return f.read() 9 else: 10 return "no file" 11 12 13 14 if __name__=="__main__": 15 hf=HandleFile() 16 print hf.read_file("e:\\test4\\ip.txt")
2
【Python】unittest-1