2020-05-19

一、什么是unittest

TestCase:

測試環(huán)境的搭建(setup)

執(zhí)行測試代碼(run)

測試環(huán)境的還原(tearDown)

Test suite:多個測試結合在一起就是TestSuit,TestSuit可以嵌套TestSuit

Testrunner:用來執(zhí)行測試用例

TestLoader:是用來加載TestCase到TestSuit中的,其中有幾個loadTestsFrom__()方法,就是從各個地方尋找TestCase,來創(chuàng)建他們的實例,然后add到TestSuit中,再放回一個TestSuit實例。

Test fixture:對一個測試用例環(huán)境的搭建和銷毀,是一個fixture通過覆蓋TestCase()和tearDown()方法來實現(xiàn)。

二、步驟

編寫一個python類,繼承unittest模塊中的TesetCase類,這就是一個測試類

在上面編寫的測試類中定義測試方法(這個就是指測試用例),每個方法的方法名都要求以test打頭,沒有額外的參數(shù)。在該測試方法中調用被測試代碼,校驗測試結果,TestCase類中提供了很多標準的檢驗方法,如常見的assertEqual。

執(zhí)行unittest.main(),該函數(shù)會負責運行測試,它會實例化所有testCase的子類,并運行其中所有以test打頭的方法。

三、簡單用法

用import unittest導入unittest模塊

定義一個繼承自unittest.TestCase的測試用例,如class xxx(unittest.TestCae)

定義setUp和tearDown,這兩個方法與junit相同,即如果定義了則會在每個測試case執(zhí)行setUP方法,執(zhí)行完畢后執(zhí)行tearDown方法。

定義測試用例,名字以test開頭,unittest會自動將test開頭的方法放入測試用例集中。

一個測試用例應該只測試一個方面,測試目的和測試內(nèi)容應很明確,主要是調用assertEqual、assertRaises等斷言方法判斷程序執(zhí)行結果和預期值是否相符

調用unittest.main()啟動測試

如果測試通過,則會顯示e,并給出具體的錯誤,如果測試測試失敗則顯示為f,如果測試通過為.,如有多個testcase,則結果依次顯示

四、unittest.main()常用方法

assertEqual(a,b)a==b

?

assertNotEqual(a,b)a!=b

?

assertTrue(x)bool(x)isTrue

?

assertFalse(x)bool(x)isFalse

?

assertIs(a,b)aisb

?

assertIsNot(a,b)aisnotb

?

asertIsNone(x)? ? xisNone

?

assertIn(a,b)? ? ? ainb

?

assertNotIn(a,b)? ? anotinb

?

assertIsInstance(a,b)isinstance(a,b)

?

assertNotIsInstance(a,b)notisinstance(a,b)

主要用到的函數(shù)有:

failedinfo表示不成立打印信息failedinfo,為可選參數(shù)

self.fail([msg])會無條件的導致測試失敗,不推薦使用。

self.assertEqual(value1, value2, failedinfo) # 斷言value1 == value2

self.assertTrue(表達式, failedinfo) # 斷言value為真

self.assertFalse(表達式, failedinfo) # 斷言value為假

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

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