(一)unittest基本簡(jiǎn)介
unittest
是Python自帶的一個(gè)單元測(cè)試框架范抓,unittest
又被稱為PyUnit
可婶,是由Java的JUnit
衍生而來(lái)芍阎,基本結(jié)構(gòu)是類似的燎斩。對(duì)于單元測(cè)試杯活,需要設(shè)置預(yù)先條件匆帚,對(duì)比預(yù)期結(jié)果和實(shí)際結(jié)果。
由于unittest
是Python自帶的標(biāo)準(zhǔn)模塊旁钧,所以不需要單獨(dú)再去安裝吸重。引入包import unittest
即可使用。
(二)unittest基本概念
1歪今、unittest核心的四個(gè)概念
-
test fixture
:fixture
表示test case
運(yùn)行前需要做的準(zhǔn)備工作以及結(jié)束后的清理工作嚎幸。比如,創(chuàng)建臨時(shí)/代理數(shù)據(jù)庫(kù)寄猩、目錄或啟動(dòng)一個(gè)瀏覽器進(jìn)程嫉晶。 -
test case
:test case
是單元測(cè)試中的最小個(gè)體,通常是使用assert方法(斷言)檢查動(dòng)作和輸入的響應(yīng)田篇。unittest
提供了一個(gè)基礎(chǔ)類TestCase
车遂,一般是基于TestCase類進(jìn)行擴(kuò)充,來(lái)創(chuàng)建test case
測(cè)試用例斯辰。 -
test suite
:test suite
(套件)是test case
的合集,通常用test suite
將test case
按需求匯總后坡疼,統(tǒng)一執(zhí)行彬呻。(批量執(zhí)行用例) -
test runner
:test runner
是一個(gè)執(zhí)行器,用來(lái)執(zhí)行測(cè)試用例或者套件柄瑰。并將測(cè)試結(jié)果保存到TextTestResult
實(shí)例中闸氮,包括運(yùn)行了多少測(cè)試用例,成功了多少教沾,失敗了多少等信息蒲跨。并提供圖形界面、文本界面或者返回一個(gè)值展示測(cè)試結(jié)果授翻。
2或悲、如何創(chuàng)建一個(gè)測(cè)試類
所有測(cè)試用例類都要繼承TestCase
基本類。
# 1. 導(dǎo)入unittest
import unittest
# 2. 定義一個(gè)測(cè)試類
class Test_demo(unittest.TestCase):
3堪唐、test fixture
常用的四個(gè)方法
(1)基于函數(shù)級(jí)別的方法
-
setup()
:每個(gè)測(cè)試方法運(yùn)行前執(zhí)行一次巡语。測(cè)試類中有多少測(cè)試用例執(zhí)行多少次。 -
teardown()
:每個(gè)測(cè)試方法運(yùn)行完后執(zhí)行一次淮菠。測(cè)試類中有多少測(cè)試用例執(zhí)行多少次男公。
(2)基于類級(jí)別的方法
-
setUpClass()
:在測(cè)試類執(zhí)行前執(zhí)行一次,需要@classmethod
裝飾器修飾合陵。 -
tearDownClass()
:在測(cè)試類執(zhí)行完后執(zhí)行一次枢赔,需要@classmethod
裝飾器修飾澄阳。
4、unittest編寫(xiě)測(cè)試方法(用例)規(guī)范
- py文件需要以test開(kāi)頭踏拜。(規(guī)范碎赢,不必須)
- 測(cè)試類名稱需要Test開(kāi)頭。(規(guī)范执隧,不必須)
- 每個(gè)測(cè)試方法名稱均以test開(kāi)頭揩抡,否則是不被
unittest
識(shí)別的。(規(guī)范镀琉,必須) - 在unittest框架中峦嗤,測(cè)試用例就是TestCase的實(shí)例,所以每個(gè)測(cè)試類必須繼承
unittest
中TestCase
類來(lái)編寫(xiě)用例屋摔。 - 測(cè)試方法必須帶
self
參數(shù)烁设,用來(lái)單獨(dú)運(yùn)行或則組合運(yùn)行用例。 - 測(cè)試用例的執(zhí)行順序是按照測(cè)試方法名的ASCII編碼字符集的順序進(jìn)行排序的钓试。
5装黑、執(zhí)行測(cè)試腳本
unittest.main()
:將一個(gè)單元測(cè)試模塊變?yōu)榭芍苯舆\(yùn)行的測(cè)試腳本,main()
方法是使用TestLoader
類來(lái)搜索所有包含在該模塊中以test命名開(kāi)頭的測(cè)試方法弓熏,并自動(dòng)執(zhí)行他們恋谭。
執(zhí)行方法的默認(rèn)順序是:根據(jù)ASCII碼的順序加載測(cè)試用例,數(shù)字與字母的順序?yàn)椋?code>0-9挽鞠,A-Z疚颊,a-z。