UnitTest的基本概念與原理

1、UnitTest概念

一、test fixture:測試固件,簡單來講就是作一些測試過程當中須要準備的東西,好比建立臨時的數據庫,文件和目錄等,其中 setUp() 和 setDown() 是最經常使用的方法。python

二、test case:用戶自定義的測試case的基類,調用run()方法,會依次調用setUP方法、執行用例的方法、tearDown()方法。面試

三、test suite:測試用例集合,能夠經過addTest()方法手動增長Test Case,也可經過TestLoader自動添加Test Case,TestLoader在添加用例時,會沒有順序。數據庫

四、test runner:運行測試用例的驅動類,能夠執行TestCase,也可執行TestSuite。執行後TestCase和Testsuite會自動管理TestResult。app

2、UnitTest原理

UnitTest是Python自帶的測試框架,是Python的標準測試庫,相比於其餘測試框架是Python目前使用最廣的測試框架。框架

一、工做原理

TestCase:一個testcase就是一條測試用例;性能

setUp:測試環境的準備;學習

tearDown:測試環境的還原;測試

run:測試執行;ui

TestSuite:測試套件或集合,多個測試用例的集合就是一個suite,一個suite能夠包含多條測試用例,測試套件suite裏面也能夠嵌套測試套件suite;編碼

TestLoader:用來加載testcase與testsuite;

Testrunner:用來執行測試用例,將測試結果保存在texttestresult中。


二、須要注意
class繼承unittest.TestCase,繼承後就造成了一條測試用例。若是在class中有多個test開頭的 方法,那麼每一個test開頭的方法,在load的時候,便會生成一條testcase。

模塊名以test開頭;

類以Test開頭;

方法以test開頭;

運行時,右擊出現unittest。若是沒有出現,那麼須要配置或使用python運行,添加: if name == ‘main’: unittest.main()。


三、斷言結果
. 表示經過 或者 pass;

F False, 表示斷言沒有經過;

E Error, 表示程序內部發生了錯誤。


四、執行順序
根據 ascii 編碼排序;

若是咱們想手工調整測試用例的執行順序,不一樣的字母前面加 數字。


五、pycharm運行時注意事項
在空行處右擊,執行整個模塊;

在類名上, 執行單個測試類;

在方法名上, 執行單個測試用例;

注意在指定的位置運行,空行的地方去運行。

3、UniTtest斷言

Python在 unittest.TestCase 類中提供了衆多斷言方法。

斷言方法檢查你認爲應該知足的條件是否確實知足。若是條件確實知足,你對程序行爲的假設就獲得了確認,能夠確信沒有錯誤。若是應該知足的條件實際上並不知足,Python將引起異常。

下表是6個經常使用的斷言方法,使用這些方法可覈實返回的值等於或不等於預期的值,返回值爲 True 或 False 。返回的值在列表中或不在列表中。只能在繼承 unittest.TestCase 的類中使用這些方法。

UnitTest經常使用斷言方法 做用
assertEqual(a, b) 覈實 a == b
assertNotEqual(a, b) 覈實 a != b
assertTrue(x) 覈實 x 爲 True
assertFalse(x) 覈實 x 爲 False
assertIn( item , list ) 覈實 item 在 list 中
assertNotIn( item , list ) 覈實 item 不在 list 中

4、最後

對軟件測試、接口測試、自動化測試、軟件測試零基礎入門、性能測試、LR腳本開發、python自動化全棧、面試經驗感興趣能夠175317069,羣內會有不按期的發放免費的資料連接。若是你有好的學習也資料能夠私聊發我,我會註明出處以後分享給你們。

相關文章
相關標籤/搜索