您現在的位置是:首頁 > 垂釣

python中的單元測試

  • 由 小雨說程式碼 發表于 垂釣
  • 2023-01-29
簡介斷言關鍵字來測試,以下是常用的測試斷言:當然也會有其他用途的斷言,比如拋錯、日誌等,如圖:另外,我們需要明確一下單元測試的編寫規則:1、測試檔名須以“test_”開頭或者以”_test”結尾2、編寫單元測試時,我們需要編寫一個測試類,從

木馬入侵流程是什麼

大家好,之前的文章《Python的PEP8編碼規範》最後,有寫過專案目錄結構中有一個tests的資料夾,用來存放測試程式碼的檔案,一般也就是用來存放單元測試檔案的地方,今天我們就來看一下Python中單元測試的程式碼編寫。

python中的單元測試

單元測試作為任何語言的開發者都應該是必要的,因為時隔數月後再回來除錯自己的複雜程式時,其實也是很崩潰的事情。雖然會很快熟悉內容,但是修改和除錯將是一件痛苦的事情,如果你在修改了程式碼後出現問題的話,而單元測試可以幫助我們很快準確的定位到問題的位置,出現問題的模組和單元。所以這是一件很愉快的事情,因為我們知道其它修改或沒有修改的地方仍然是正常工作的。

Python中有多個測試框架,主要有unittest,nose, pytest等,通常情況下大家使用unittest和pytest較多, 其中unittest是Python的內建測試框架,pytest是第三方框架,今天講到的是本人經常使用的unittest。

unittest 單元測試框架是受到 JUnit 的啟發,與其他語言中的主流單元測試框架有著相似的風格。其支援測試自動化,配置共享和關機程式碼測試。支援將測試樣例聚合到測試集中,並將測試與報告框架獨立。

對於unittest, 裡面有許多功能方法,但是平常很多都使用不到,我們主要講解下常用的部分。

測試用例類TestCase

一個測試用例是一個獨立的測試單元。它檢查輸入特定的資料時的響應。 unittest 提供一個基類: TestCase ,用於新建測試用例。

測試套件TestSuite

test suite 是一系列的測試用例,或測試套件,或兩者皆有。它用於歸檔需要一起執行的測試。

測試執行器(test runner)

test runner 是一個用於執行和輸出測試結果的元件。這個執行器可能使用圖形介面、文字介面,或返回一個特定的值表示執行測試的結果。

舉例說明:

測試加、減、乘、除四個函式,如圖:

python中的單元測試

對以上加減進行測試TestCase的使用,可以看到一個透過一個失敗,以及失敗原因,如圖:

python中的單元測試

同樣對加減進行測試TestSuite和TestRunner的使用:執行結果與上面相同,但可以使用套裝進行測試,也可進行多測試檔案測試。

python中的單元測試

從以上示例中我們會發現使用了assert……斷言關鍵字來測試,以下是常用的測試斷言:

python中的單元測試

當然也會有其他用途的斷言,比如拋錯、日誌等,如圖:

python中的單元測試

另外,我們需要明確一下單元測試的編寫規則:

1、測試檔名須以“test_”開頭或者以”_test”結尾

2、編寫單元測試時,我們需要編寫一個測試類,從 unittest。TestCase 繼承。

3、以 test 開頭的方法就是測試方法,不以 test 開頭的方法不被認為是測試方法,測試的時候不會被執行。

4、對每一類測試都需要編寫一個 test_xxx() 方法,使用assert斷言。

至此,即可完成專案基礎的單元測試,單元測試很重要,不僅可以幫我們快速定位為題,也方便我們重構測試,需要我們開發人員足夠重視。

“今天的分享就到這裡,希望對大家有所幫助,歡迎點贊收藏、參與評論,謝謝~”

Top