什麼是單元測試?
單元測試負責最小的軟件測試單元(模塊)進行驗證,它使用軟件設計文檔中對模塊的描述做爲指南,對重要的程序分支進行測試以發現模塊中的錯誤。html
python擁有諸多單元測試框架,如doctest、unittest、pytest、nose等,其中最經常使用就是python自帶的unittest框架(也被稱爲PyUnit框架),Python2.1及其之後的版本已將unittest做爲標準模塊放入python開發中。python
基本框架代碼以下框架
import unittest class Test(unittest.TestCase): def setUp(self): print('hello') def tearDown(self): print('bye') def test_001(self): print('001') def test_002(self): print('002') def test_003(self): print('003') def func(self): print('func') if __name__ == '__main__': unittest.main()
1.引入unittest模塊,建立一個類A繼承unittest的TestCase類,咱們能夠將A類當作是對待特定類的測試的集合
2.setup() 方法用於測試用例執行前的初始化工做
3.teardown() 方法用於測試用例執行以後的善後工做
4.unittest提供了全局main()方法,使用它能夠方便地將一個單元測試模塊變成能夠直接運行的測試腳本
5.main()方法使用TestLoader類來搜索全部包含在模塊以」test」命名開頭的測試方法,並自動執行它們post
四個基本概念
1.Test Fixture
測試用例環境的搭建和銷燬,就是一個fixture,經過setUp()方法來實現數據的初始化創建以及環境準備,經過tearDown()方法清除數據結束測試。單元測試
2.TestCase
一個TestCase的實例就是一個測試用例,測試用例就是一個完整的測試流程,包括測試前的準備環境搭建,包括測試前的準備環境搭建(setUp)、實現測試過程的代碼(run),以及測試之後環境的還原(tearDown)。測試
3.Test Suiteui
一個功能的驗證是須要多個測試用例,可把多個測試用例集合起來執行,這就產生了測試套件TestSuite的概念,Test Suite用來組裝單個測試用例,能夠經過addTest加載TestCase到TestSuite中,從而返回一個TestSuite實例url
4.Test Runner
在unittest單元測試框架中,經過TestTextRunner類提供的run()方法來執行測試用例。spa