Python學(xué)習(xí)之旅 讀書筆記系列
Day 9
《Python編程從入門到實踐》
第11章 測試代碼
知識點
- Python模塊unittest
- 測試有3類:
- 單元測試:核實函數(shù)某個方面
- 測試用例:一組單元測試
- 全覆蓋測試:一整套單元測試
- 測試步驟:
- 先導(dǎo)入模塊 unittest : import unittest
- 創(chuàng)建一個繼承unittest.TestCase的類:class 測試名(unittest.TestCase)
- 測試名中最好表達(dá)要測試的函數(shù)哼勇,并包含test字樣(易讀)
- 類里面钩杰,所有Test開頭的都會自動運行
- 定義方法調(diào)用要測試的函數(shù) def 方法名(self) 變量=測試函數(shù)(‘實參1’,‘實參2’)
- 驗證結(jié)果 self.assertEqual(方法名,‘預(yù)期正確的結(jié)果’)
- 運行 unittest.main()
- 測試結(jié)果:Ran 1 test in 0.000s(1為數(shù)量)
- 通過 OK
- 不通過 FAILED(errors=1) 1為有問題的數(shù)量
- 測試類:
- 6種斷言方法:
- assertEqual(a,b) 核實 a==b
- assertNotEqual(a,b) 核實a!=b
- assertTrue(x) 核實x為True
- assetFalse(x) 核實x為False
- assertIn(item,list) 核實item在list中
- assertNotIn(item,list) 核實item不在list中
- 6種斷言方法:
- unittest.TestCase類包含方法setup()
- 只需要創(chuàng)建對象一次褐耳,并在每個測試方法中使用它們
- 方法setup()做兩件事情:
- 創(chuàng)建1個調(diào)查對象
- 創(chuàng)建1個答案列表
- 以上兩個結(jié)果存儲在變量的屬性中
其他
- 注意事項
- 共享代碼之前,必須證明代碼有通過既有測試
- 項目早期不要試圖編寫全覆蓋測試
- 感受
- 測試部分第一次真正接觸阻肿,以前寫VBA測試都是一行行試運行傅是,沒想到有專門的測試工具
- 本章為止,算是把第一部分基礎(chǔ)知識看完构订,接下來到第二部分(項目)侮叮,會有更多的演練
- 在啟動第二部分之前,還要多利用時間復(fù)習(xí)一遍悼瘾,做一次復(fù)盤