一嚎货、 核心要素
- TestCase
一個TestCase的實例就是一個測試用例秸应。就是一個完整的測試流程虑凛。
包括測試前準備的環(huán)境(setUp),執(zhí)行測試代碼(run)软啼,以及測試環(huán)境的還原(tearDown)桑谍。通過運行這個測試單元,可以對某一個問題進行驗證
- TestSuite (測試套件)
多個測試用例集合在一起祸挪,就是TestSuite,而TestSuite也可以嵌套TestSuite锣披。如果測試用例比作單個學生,測試套件就是好像是班級的概念贿条。TestLoader是用來加載測試用例到TestSuite中的
3.TextTestRunner
TextTestRunner是用來執(zhí)行測試用例的雹仿,其中run()會執(zhí)行TestSuite 中的run(result)方法,測試結(jié)果會保存到TestTestResult實例中整以,包括運行多少用例胧辽,成功多少,失敗多少等信息
- fixture
對一個測試用用例環(huán)境的搭建和銷毀公黑,是一個
二邑商、 Unit test案例
1.在 calculator.py 中構(gòu)造一個類Math 包含整數(shù)加法運算
class Math:
def __init__(self, a, b):
self.a = int(a)
self.b = int(b)
def add(self):
return self.a + self.b
2.在testDemo.py 中對Math 進行單元測試
from calculator import Math
import unittest # 1. 導入unittest庫摄咆,不導入就沒辦法使用,好比手機如果要使用某個app就必須先安裝該app一樣
class TestMath(unittest.TestCase):
"""
2.定義測試類人断,測試類的名字你可以隨意取吭从,當然了首字母最好大寫,這樣更符合規(guī)范一些恶迈。
所有的測試類都必須直接或間接的繼承自unittest.TestCase類涩金。
"""
def setUp(self):
"""
3.這個方法是一個鉤子方法,在每個測試用例執(zhí)行之前都會執(zhí)行一次蝉绷,是做數(shù)據(jù)初始化的好地方鸭廷。
"""
print("test start")
def test_add(self):
"""
4.這里定義了一個名為 testadd 的測試方法,一定要test開頭熔吗,這個方法就是一個測試用例。
注意佳晶,只有方法名以test開頭的方法才是測試用例
"""
j=Math(5,10)
self.assertEqual(j.add(),15)
# self.assertEqual(j.add(),12,'不相等') #錯誤結(jié)果測試
def tearDown(self):
"""
測試結(jié)束后的操作桅狠,這里基本上都是關(guān)閉瀏覽器
:return:
"""
print("test end")
if __name__=='__main__':
#構(gòu)造測試集;將多個用例集合在一起
suite=unittest.TestSuite()
suite.addTest(TestMath("testadd"))
#執(zhí)行測試用例
runner=unittest.TextTestRunner()
runner.run(suite)
總結(jié)
使用unittest的話需要記住下面的幾點
- 導入unittest
- 定義繼承自unittest.TestCase的測試類
- 定義以test開頭的測試方法轿秧,這個方法就是測試用例中跌,你可以在一個類里定義n個測試用例
- 斷言
- unittest.main()是執(zhí)行測試用例最簡單的方式
創(chuàng)建一個test程序塊
Pycharm提供了一種非常智能的創(chuàng)建測試代碼的方法:首先我們創(chuàng)建一個test實例。單擊選中類名然后按下Ctrl+Shift+T快捷鍵菇篡,或者在主菜單中選擇Navigate → Test漩符,如果test程序已存在,則會直接跳轉(zhuǎn)到對應代碼驱还,否則創(chuàng)建它:
圖文來源 :Anthony_tester 如有侵權(quán)請聯(lián)系刪除