這篇文章將為大家詳細(xì)講解有關(guān)unittest怎么用,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比洛隆網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式洛隆網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋洛隆地區(qū)。費(fèi)用合理售后完善,10年實(shí)體公司更值得信賴。單元測試是指對(duì)軟件中的最小可測試單元進(jìn)行檢查和驗(yàn)證,Python中有一個(gè)自帶的單元測試框架unittest模塊,不僅可以適用于單元測試,還可以適用WEB自動(dòng)化測試用例的開發(fā)與執(zhí)行,該測試框架可組織執(zhí)行測試用例,并且提供了豐富的斷言方法,判斷測試用例是否通過,最終生成測試結(jié)果;
unittest.TestCase()
:是所有測試用例類繼承的基本類,一個(gè)類只要繼承了unittest中的TestCase類就是一個(gè)測試用例類,就可以在類中寫測試用例;
from unittest import TestCase, main class MyTest(TestCase): # 繼承unittest.TestCase def setUp(self): # 測試用例執(zhí)行前的初始化工作 print('開始執(zhí)行') def tearDown(self): # 測試用例執(zhí)行之后的善后工作 print('執(zhí)行完畢') def testWay(self): print('這是測試用例') if __name__ == '__main__': main() # 運(yùn)行所有的測試用例
unittest.TestSuite()
:用來創(chuàng)建測試套件,其中有一個(gè)addTest()方法可以將一個(gè)或多個(gè)測試用例添加到測試套件中,先添加的哪個(gè)方法就先運(yùn)行哪個(gè)方法;
unittest.TextTextRunner()
:通過該類中的run()方法來運(yùn)行suite所組裝的測試用例;
unittest.defaultTestLoader()
:通過該類下面的discover()方法可自動(dòng)根據(jù)測試目錄start_dir匹 配查找測試用例模塊(以test開頭,以.py結(jié)尾的文件,例如:test*.py), 并將查找到的測試用例 組裝到測試套件,因此可以直接通過run()方法執(zhí)行discover;
unittest.skip()
:裝飾器,可過濾不需要執(zhí)行的用例,使這個(gè)用例不執(zhí)行;
unittest.main()
:可以方便的將一個(gè)單元測試模塊變?yōu)榭芍苯舆\(yùn)行的測試腳本,main()方法使 用TestLoader類來搜索所有包含在該模塊中以“test”命名開頭的測試方法,并自動(dòng)執(zhí)行他們 ;
setUp()
方法:用于測試用例執(zhí)行前的初始化。如測試用例中需要訪問數(shù)據(jù)庫,可以在setUp中建立數(shù)據(jù)庫連接并進(jìn)行初始化。如果測試用例需要登錄web,可以先獲取cookie,獲取文件句柄;
tearDown()
方法:用于測試用例執(zhí)行之后的善后工作,如關(guān)閉數(shù)據(jù)庫連接,關(guān)閉文件;
assert*()
:斷言方法,相當(dāng)于if-else里面的條件判斷,在執(zhí)行測試用例的過程中,最終用例是否執(zhí)行通過,是通過判斷測試得到的實(shí)際結(jié)果和預(yù)期結(jié)果是否相等決定的;
assertEqual(self, first, second, msg=None)
:判斷兩個(gè)參數(shù)是否相等,如果相等則測試用例通過;
assertNotEqual(self, first, second, msg=None)
:判斷兩個(gè)參數(shù)是否相等,如果不相等則測試用例通過;
assertTrue(self, expr, msg=None)
:判斷是否為真,為真則測試用例通過;
assertFalse(self, expr, msg=None)
:判斷是否為假,為假則測試用例通過;
assertIs(a, b, msg=None)
:斷言a是否是b,如果是則測試用例通過。
更多的斷言方法可以查看官網(wǎng): /tupian/20230522/unittest.html id="h4-5-">5.編寫測試用例
首先從unittest模塊中導(dǎo)入TestCase、main等需要用到的類;
然后自定義一個(gè)類繼承TestCase類;
可以重寫TestCase類中的setUp()初始化方法,和tearDown()清理方法,這兩個(gè)方法是成對(duì)出 現(xiàn)的;
然后編寫以字母開頭的測試用例,執(zhí)行順序默認(rèn)是根據(jù)ASCII碼的順序加載測試用例,數(shù)字與字母的順序?yàn)椋?-9,A-Z,a-z;
最后調(diào)用unittest.main()方法將一個(gè)單元測試模塊變成可以直接運(yùn)行的測試腳本,然后自動(dòng)執(zhí)行測試用例;
from unittest import TestCase, main class MyTestCase(TestCase): # setUp、tearDown每次執(zhí)行一個(gè)test開頭的方法時(shí),都會(huì)調(diào)用一次 def setUp(self): print('setup') def tearDown(self): print('tearDown') def test_1(self): print('第一個(gè)測試用例') def test_2(self): print('第二個(gè)測試用例') if __name__ == '__main__': main()
關(guān)于“unittest怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。