二、單元測試:unittest核心要素簡介

一嚎货、 核心要素

  1. TestCase

一個TestCase的實例就是一個測試用例秸应。就是一個完整的測試流程虑凛。
包括測試前準備的環(huán)境(setUp),執(zhí)行測試代碼(run)软啼,以及測試環(huán)境的還原(tearDown)桑谍。通過運行這個測試單元,可以對某一個問題進行驗證

  1. TestSuite (測試套件)

多個測試用例集合在一起祸挪,就是TestSuite,而TestSuite也可以嵌套TestSuite锣披。如果測試用例比作單個學生,測試套件就是好像是班級的概念贿条。TestLoader是用來加載測試用例到TestSuite中的

3.TextTestRunner

TextTestRunner是用來執(zhí)行測試用例的雹仿,其中run()會執(zhí)行TestSuite 中的run(result)方法,測試結(jié)果會保存到TestTestResult實例中整以,包括運行多少用例胧辽,成功多少,失敗多少等信息

  1. 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)系刪除

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末嗜暴,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子议蟆,更是在濱河造成了極大的恐慌闷沥,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件咐容,死亡現(xiàn)場離奇詭異舆逃,居然都是意外死亡,警方通過查閱死者的電腦和手機戳粒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進店門路狮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蔚约,你說我怎么就攤上這事奄妨。” “怎么了炊琉?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵展蒂,是天一觀的道長又活。 經(jīng)常有香客問我,道長锰悼,這世上最難降的妖魔是什么柳骄? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮箕般,結(jié)果婚禮上耐薯,老公的妹妹穿的比我還像新娘。我一直安慰自己丝里,他們只是感情好曲初,可當我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著杯聚,像睡著了一般臼婆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上幌绍,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天颁褂,我揣著相機與錄音,去河邊找鬼傀广。 笑死颁独,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的伪冰。 我是一名探鬼主播誓酒,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼贮聂!你這毒婦竟也來了靠柑?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤寂汇,失蹤者是張志新(化名)和其女友劉穎病往,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體骄瓣,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡停巷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了榕栏。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片畔勤。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖扒磁,靈堂內(nèi)的尸體忽然破棺而出庆揪,到底是詐尸還是另有隱情,我是刑警寧澤妨托,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布缸榛,位于F島的核電站吝羞,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏内颗。R本人自食惡果不足惜钧排,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望均澳。 院中可真熱鬧恨溜,春花似錦、人聲如沸找前。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽躺盛。三九已至项戴,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間颗品,已是汗流浹背肯尺。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留躯枢,地道東北人。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓槐臀,卻偏偏與公主長得像锄蹂,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子水慨,可洞房花燭夜當晚...
    茶點故事閱讀 44,871評論 2 354

推薦閱讀更多精彩內(nèi)容