unittest.TestCase()
:是全部測試用例類繼承的基本類,一個類只要繼承了unittest中的TestCase類就是一個測試用例類,就能夠在類中寫測試用例;from unittest import TestCase, main class MyTest(TestCase): # 繼承unittest.TestCase def setUp(self): # 測試用例執行前的初始化工做 print('開始執行') def tearDown(self): # 測試用例執行以後的善後工做 print('執行完畢') def testWay(self): print('這是測試用例') if __name__ == '__main__': main() # 運行全部的測試用例
unittest.TestSuite()
:用來建立測試套件,其中有一個addTest()方法能夠將一個或多個測試用例添加到測試套件中,先添加的哪一個方法就先運行哪一個方法;html
unittest.TextTextRunner()
:經過該類中的run()方法來運行suite所組裝的測試用例;python
unittest.defaultTestLoader()
:經過該類下面的discover()方法可自動根據測試目錄start_dir匹 配查找測試用例模塊(以test開頭,以.py結尾的文件,例如:test*.py), 並將查找到的測試用例 組裝到測試套件,所以能夠直接經過run()方法執行discover;web
unittest.skip()
:裝飾器,可過濾不須要執行的用例,使這個用例不執行;數據庫
unittest.main()
:能夠方便的將一個單元測試模塊變爲可直接運行的測試腳本,main()方法使 用TestLoader類來搜索全部包含在該模塊中以「test」命名開頭的測試方法,並自動執行他們 ;cookie
setUp()
方法:用於測試用例執行前的初始化。如測試用例中須要訪問數據庫,能夠在setUp中創建數據庫鏈接並進行初始化。若是測試用例須要登陸web,能夠先獲取cookie,獲取文件句柄;框架
tearDown()
方法:用於測試用例執行以後的善後工做,如關閉數據庫鏈接,關閉文件;單元測試
assert*()
:斷言方法,至關於if-else裏面的條件判斷,在執行測試用例的過程當中,最終用例是否執行經過,是經過判斷測試獲得的實際結果和預期結果是否相等決定的;測試
assertEqual(self, first, second, msg=None)
:判斷兩個參數是否相等,若是相等則測試用例經過;ui
assertNotEqual(self, first, second, msg=None)
:判斷兩個參數是否相等,若是不相等則測試用例經過;code
assertTrue(self, expr, msg=None)
:判斷是否爲真,爲真則測試用例經過;
assertFalse(self, expr, msg=None)
:判斷是否爲假,爲假則測試用例經過;
assertIs(a, b, msg=None)
:斷言a是不是b,若是是則測試用例經過。
更多的斷言方法能夠查看官網:https://docs.python.org/3/library/unittest.html#assert-methods
首先從unittest模塊中導入TestCase、main等須要用到的類;
而後自定義一個類繼承TestCase類;
能夠重寫TestCase類中的setUp()初始化方法,和tearDown()清理方法,這兩個方法是成對出 現的;
而後編寫以字母開頭的測試用例,執行順序默認是根據ASCII碼的順序加載測試用例,數字與字母的順序爲:0-9,A-Z,a-z;
最後調用unittest.main()方法將一個單元測試模塊變成能夠直接運行的測試腳本,而後自動執行測試用例;
from unittest import TestCase, main class MyTestCase(TestCase): # setUp、tearDown每次執行一個test開頭的方法時,都會調用一次 def setUp(self): print('setup') def tearDown(self): print('tearDown') def test_1(self): print('第一個測試用例') def test_2(self): print('第二個測試用例') if __name__ == '__main__': main()