第十五單元 Python單元測試之unittest
一、單元測試、集成測試、功能測試
單元測試
顆粒度最小,一般由開發(fā)小組采用白盒方式來測試,主要測試單元是否符合“設(shè)計(jì)”;是指對軟件中的最小可測試單元進(jìn)行檢查和驗(yàn)證
集成測試
介于單元測試和系統(tǒng)測試之間,一般由開發(fā)小組采用白盒+黑盒的方法來測試,即驗(yàn)證“設(shè)計(jì)”又驗(yàn)證“需求”。主要用來測試模板與模板之間的接口,同時還要測試一些主要的業(yè)務(wù)功能。
功能測試
顆粒度最大,一般由獨(dú)立的測試小組采用黑盒的方式來測試,主要測試系統(tǒng)是否符合“需求規(guī)格說明書
白盒測試
主要應(yīng)用于單元測試階段,主要是對代碼級別的測試,針對程序內(nèi)部的邏輯結(jié)構(gòu)
黑盒測試
用于功能測試
二、Unittest重要組成
unittest中最核心的部分是:TestFixture、TestCase、TestSuite、TestRunner
1.TestFixture
作用:用于一個測試環(huán)境的準(zhǔn)備和銷毀還原
功能:當(dāng)測試用例每次執(zhí)行之前需要準(zhǔn)備測試環(huán)境,每次測試完成后還原測試環(huán)境
主要方法:
setUp():準(zhǔn)備環(huán)境,執(zhí)行每個測試用例的前置條件;
tearDown():環(huán)境還原,執(zhí)行每個測試用例的后置條件;
setUpClass():必須使用@classmethod裝飾器,所有case執(zhí)行的前置條件,只運(yùn)行一次;
tearDownClass():必須使用@classmethod裝飾器,所有case運(yùn)行完后只運(yùn)行一次;
2.TestCase:測試用例
定義:一個類class繼承 unittest.TestCase,就是一個測試用例
測試用例:就是一個完整的測試流程
包括測試前準(zhǔn)備環(huán)境的搭建(setUp),執(zhí)行測試代碼(run),以及測試后環(huán)境的還原(tearDown)
測試用例命名規(guī)則
測試方法的名稱要以test開頭。只會執(zhí)行以test開頭定義的方法