unittest框架詳解


  前邊的隨筆主要介紹的requests模塊的有關知識個內容,接下來看一下python的單元測試框架unittest。熟悉 或者了解java 的小伙伴應該都清楚常見的單元測試框架 Junit 和 TestNG,這個招聘的需求上也是經常見到的。python 里面也有單元

  測試框架-unittest,相當於是一個 python 版的 junit。python 里面的單元測試框架除了 unittest,還有一個 pytest 框架,這個實際上用的比較少,后面有空再繼續介紹和分享。unittest單元測試框架不僅可以適用於單元測試,還可以適用WEB自動化測

試用例的開發與執行,該測試框架可組織執行測試用例,並且提供了豐富的斷言方法,判斷測試用例是否通過,最終生成測試結果。

學習和了解unittest

1、查看其中文官網:https://docs.python.org/zh-cn/3/library/unittest.html 英文官網:https://docs.python.org/3/library/unittest.html

2、先導入 unittest用 help 函數查看源碼解析查看描述:

Python unit testing framework, based on Erich Gamma's JUnit and Kent Beck's Smalltalk testing framework.

翻譯:python 的單元測試框架,是基於 java 的 junit 測試框架

一、簡單了解

1、第一行是導入 unittest 這個模塊

2、class 這一行是定義一個測試的類,並繼承 unittest.TestCase 這個類

定義測試類,父類為unittest.TestCase。 #可繼承unittest.TestCase的方法,如setUp和tearDown方法,不過此方法可以在子類重寫,覆蓋父類方法。 #可繼承unittest.TestCase的各種斷言方法。

3、接下來是定義了兩個測試 case 名稱:testAdd 和 testMultiply4、注釋里面有句話很重要:## test method names begin 'test*'--翻譯:測試用例的名稱要以 test 開頭

4、然后是斷言 assert,這里的斷言方法是 assertEqual-判斷兩個是否相等,這個斷言可以是一個也可以是多個

5、if 下面的這個 unittest.main()是運行主函數,運行后會看到測試結果(跑了兩個用例耗時 0.000 秒,兩個用例都通過)

import unittest

class Page_test(unittest.TestCase):

    def test_001(self):
        self.assertNotEqual(1,1)

    def test_002(self):
        self.assertNotEqual(1,2)


if __name__ == '__main__':
    unittest.main()

  

二、Class內前置條件和后置條件

1、setUp:在寫測試用例的時候,每次操作其實都是基於打開瀏覽器輸入對應網址這些操作,這個就是執行用例的前置條件。

2、tearDown:執行完用例后,為了不影響下一次用例的執行,一般有個數據還原的過程,這就是執行用例的后置條件。

3、setUpClass:在class類下只執行一次,在所有用例執行之前執行,setUp之前

4、tearDownClass:在class類下只執行一次,在所有用例執行之用執行,tearDow之后

5、很多小伙伴執行完用例,都不去做數據還原,以致於下一個用例執行失敗

6、前置和后置都是非必要的條件,如果沒有也可以寫 pass

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM