unittest框架(二)

unittest使用步驟

1.導(dǎo)入unittest模塊
2.定義一個(gè)繼承自u(píng)nittest.TestCase的測(cè)試用例類,如class xxx(unittest.TestCase):
3.定義setUp和tearDown,如果定義了則會(huì)在每個(gè)測(cè)試case執(zhí)行前先執(zhí)行setUp方法,執(zhí)行完畢后執(zhí)行tearDown方法。
4.定義測(cè)試用例,名字以test開頭,unittest會(huì)自動(dòng)將test開頭的方法放入測(cè)試用例集中。
5.一個(gè)測(cè)試用例應(yīng)該只測(cè)試一個(gè)方面,測(cè)試目的和測(cè)試內(nèi)容應(yīng)很明確。主要是調(diào)用assertEqual、assertRaises等斷言方法判斷程序執(zhí)行結(jié)果和預(yù)期值是否相符。
6.調(diào)用unittest.main()啟動(dòng)測(cè)試,或?qū)嵗痳unner對(duì)象執(zhí)行測(cè)試集、測(cè)試函數(shù)
7.如果測(cè)試未通過,則會(huì)顯示e,并給出具體的錯(cuò)誤(此處為程序問題導(dǎo)致)。如果測(cè)試失敗則顯示為f,測(cè)試通過為.,如有多個(gè)testcase,則結(jié)果依次顯示。

示例

import unittest


class TestAdd(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        """setUpClass為類的初始化方法,在整個(gè)類運(yùn)行前執(zhí)行只執(zhí)行一次"""
        print('setUpClass')

    def setUp(self):
        """為測(cè)試方法的初始化,每個(gè)text函數(shù)運(yùn)行前執(zhí)行一次"""
        self.a = 20
        self.b = 10
        print('setUp')

    def tearDown(self):
        """清理函數(shù),和setUp類似,每個(gè)text函數(shù)執(zhí)行后執(zhí)行一次"""
        print('tearDown')

    @classmethod
    def tearDownClass(cls):
        """和setUpclass類似,在調(diào)用整個(gè)類測(cè)試方法完成后執(zhí)行一次"""
        print('tearDownClass')

    def test_add(self):
        """驗(yàn)證加法"""
        result = self.a + self.b
        self.assertEqual(result, 30)
        print('test_add')

    def test_sub(self):
        """驗(yàn)證減法"""
        result = self.a - self.b
        self.assertEqual(result, 10)
        print('test_sub')


if __name__ == "__main__":
    unittest.main()
  • 在pycharm中右鍵運(yùn)行的位置不同,結(jié)果也不同
  • 想要完整運(yùn)行,鼠標(biāo)放在最后一行代碼的位置,再右鍵運(yùn)行
  • unittest默認(rèn)加載腳本的順序是:根據(jù)ASCII碼的順序加載,數(shù)字與字母的順序?yàn)椋?-9,A-Z,a-z。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容