Unittest是Python標準庫中自帶的單元測試框架,支持自動化測試,測試用例的初始化和關閉測試用例的聚合等功能。
有一些類似于Java中的Junit單元測試框架,其模塊提供了許多類和方法處理各種測試工作,能夠完善結合Selenium、Appium、Request等實現(xiàn)UI自動化與接口自動化。
而Unittest的核心組件則是TestCase(測試用例)、TestFixture(測試固件)、TestSuite(測試套件)、和TestRunner(測試運行器)。
其中,一個完整的測試流程就是一個測試用例,通過一些特定的輸入得到相應,并對結果進行校驗的過程,所有的用例都是直接繼承于Unittest.TestCase類,TestCase是最小的測試單元,具有獨立性。
測試固件就是在執(zhí)行測試之前的準備工作,比如數(shù)據(jù)清理、創(chuàng)建臨時數(shù)據(jù)庫、目錄、以及開啟某些服務進程。畢竟我們在編寫測試代碼時,總會有一些重復的代碼部分,就好比,當我們測試一個網(wǎng)站的登錄操作時,簡單分為三個用例:賬號和密碼都正確,賬號正確密碼錯誤,賬號錯誤密碼正確,這三種情況在執(zhí)行用例時都需要首先訪問系統(tǒng)地址,再輸入賬號和密碼,點擊登錄操作,完成之后瀏覽器執(zhí)行關閉操作,我們就可以通過setUp()將訪問地址作為前置條件,通過tearDown()將關閉瀏覽器作為后置條件,測試固件就是整合了代碼的公共部分。
測試套件就是把多個測試用例集合到一起。
而測試運行器則是提供測試用例運行環(huán)境,通過run()方法來執(zhí)行測試用例,并在執(zhí)行完成后將測試結果輸出。
了解了這幾個基本概念之后,再理解起來Unittest就不難了。
學習建議
綜上歸納總結,Unittest做為一個Python標準庫,和Python版本綁定,非常穩(wěn)定,不用擔心兼容性的問題。
如果要學習一個單元測試框架,建議從Unittest開始,因為你可以接觸到loader、suite、runner這樣的組件,對理解測試框架更有幫助,學習好Unittest以后,再學習Nose2或者Pytest這樣更高級的框架,能有效提升編程效率。
很多同學在網(wǎng)上看到一些說Unittest過時或Unittest不高級的言論就開始批判,顯然是不對的。Unittest是其他Python單元測試框架的基礎,沒學好Unittest,其他的框架勢必也學不好。
以上內容為大家介紹Python標準庫中自帶的單元測試框架,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。http://www.dietsnews.net/