詳解Django中的unittest及應(yīng)用
unittest是python的一個(gè)單元測(cè)試框架
關(guān)于斷言
它是用于對(duì)一個(gè)確定結(jié)果和預(yù)測(cè)結(jié)果的一種判斷,如果結(jié)果正確無任何返回效果,如果結(jié)果錯(cuò)誤;會(huì)拋出AssertionError 異常,如果后面跟了msg則返回msg內(nèi)容
assert 2 == 2 assert 2 == 1 * 2 assert 2 + 0 == 1 * 2 # ----------------- 以上無任何返回效果 assert 1 > 3, 'wrong' ''' Traceback (most recent call last): File "D:/project_of_3期課程/day22/類.py", line 259, in <module> assert 1 > 3, 'wrong' AssertionError: wrong '''
unittest模塊屬性說明
unittest的屬性
unittest.main():使用它可以方便的將一個(gè)單元測(cè)試模塊變?yōu)榭芍苯舆\(yùn)行的測(cè)試腳本,main()方法使用TestLoader類來搜索所有包含在該模塊中以“test”命名開頭的測(cè)試方法,并自動(dòng)執(zhí)行他們。執(zhí)行方法的默認(rèn)順序是:根據(jù)ASCII碼的順序加載測(cè)試用例,數(shù)字與字母的順序?yàn)椋?-9,A-Z,a-z。所以以A開頭的測(cè)試用例方法會(huì)優(yōu)先執(zhí)行,以a開頭會(huì)后執(zhí)行。
unittest.TestSuite():unittest框架的TestSuite()類是用來創(chuàng)建測(cè)試套件的。
unittest.TextTextRunner():unittest框架的TextTextRunner()類,通過該類下面的run()方法來運(yùn)行suite所組裝的測(cè)試用例,入?yún)閟uite測(cè)試套件。
TestCase類的屬性
setUp():方法用于測(cè)試用例執(zhí)行前的初始化工作。如測(cè)試用例中需要訪問數(shù)據(jù)庫,可以在setUp中建立數(shù)據(jù)庫連接并進(jìn)行初始化。如測(cè)試用例需要登錄web,可以先實(shí)例化瀏覽器。
tearDown():方法用于測(cè)試用例執(zhí)行之后的善后工作。如關(guān)閉數(shù)據(jù)庫連接。關(guān)閉瀏覽器。
assert*():一些斷言方法,在執(zhí)行測(cè)試用例的過程中,最終用例是否執(zhí)行通過,是通過判斷測(cè)試得到的實(shí)際結(jié)果和預(yù)期結(jié)果是否相等決定的。
assertEqual(a,b,[msg='測(cè)試失敗時(shí)打印的信息']):斷言a和b是否相等,相等則測(cè)試用例通過。
assertNotEqual(a,b,[msg='測(cè)試失敗時(shí)打印的信息']):斷言a和b是否相等,不相等則測(cè)試用例通過。
assertTrue(x,[msg='測(cè)試失敗時(shí)打印的信息']):斷言x是否True,是True則測(cè)試用例通過。
assertFalse(x,[msg='測(cè)試失敗時(shí)打印的信息']):斷言x是否False,是False則測(cè)試用例通過。
assertIs(a,b,[msg='測(cè)試失敗時(shí)打印的信息']):斷言a是否是b,是則測(cè)試用例通過。
assertNotIs(a,b,[msg='測(cè)試失敗時(shí)打印的信息']):斷言a是否是b,不是則測(cè)試用例通過。
assertIsNone(x,[msg='測(cè)試失敗時(shí)打印的信息']):斷言x是否None,是None則測(cè)試用例通過。
assertIsNotNone(x,[msg='測(cè)試失敗時(shí)打印的信息']):斷言x是否None,不是None則測(cè)試用例通過。
assertIn(a,b,[msg='測(cè)試失敗時(shí)打印的信息']):斷言a是否在b中,在b中則測(cè)試用例通過。
assertNotIn(a,b,[msg='測(cè)試失敗時(shí)打印的信息']):斷言a是否在b中,不在b中則測(cè)試用例通過。
assertIsInstance(a,b,[msg='測(cè)試失敗時(shí)打印的信息']):斷言a是是b的一個(gè)實(shí)例,是則測(cè)試用例通過。
assertNotIsInstance(a,b,[msg='測(cè)試失敗時(shí)打印的信息']):斷言a是是b的一個(gè)實(shí)例,不是則測(cè)試用例通過。
TextTextRunner的屬性
run():是運(yùn)行測(cè)試套件的測(cè)試用例,入?yún)閟uite測(cè)試套件。
unittest.TextTestRunner(verbosity=2).run(suite)
unittest框架使用
方式一:unittest.main()來啟動(dòng)單元測(cè)試模塊
# coding=utf-8 import unittest # 方式一:unittest.main()來啟動(dòng)單元測(cè)試模塊 class MyTestCase(unittest.TestCase): def setUp(self): print('測(cè)試環(huán)境') def test(self): print('測(cè)試用例') self.assertEquals(4, 2 * 2) self.assertEqual(1, 3, 'something was wrong') def tearDown(self): print('環(huán)境銷毀') if __name__ == '__main__': unittest.main()
方式二:添加到testsuite集合中,再加載所有的被測(cè)試對(duì)象
# coding=utf-8<br>import unittest<br><br>class TestCase(unittest.TestCase): def test1(self): print('one') def test2(self): print('two') class TestCase1(unittest.TestCase): def test1(self): print('three') def test2(self): print('four') if __name__ == '__main__': un1 = unittest.TestLoader().loadTestsFromTestCase(TestCase) un2 = unittest.TestLoader().loadTestsFromTestCase(TestCase1) suite = unittest.TestSuite([un1, un2]) unittest.TextTestRunner(verbosity=2).run(suite)
到此這篇關(guān)于Django中的unittest及應(yīng)用的文章就介紹到這了,更多相關(guān)Django unittest應(yīng)用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
對(duì)python中arange()和linspace()的區(qū)別說明
這篇文章主要介紹了對(duì)python中arange()和linspace()的區(qū)別說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-05-05Python自動(dòng)生成代碼 使用tkinter圖形化操作并生成代碼框架
這篇文章主要為大家詳細(xì)介紹了Python自動(dòng)生成代碼,使用tkinter圖形化操作并生成代碼框架,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09刪除pandas中產(chǎn)生Unnamed:0列的操作
這篇文章主要介紹了刪除pandas中產(chǎn)生Unnamed:0列的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-03-03Python判斷某個(gè)用戶對(duì)某個(gè)文件的權(quán)限
這篇文章主要為大家詳細(xì)介紹了Python如何判斷某個(gè)用戶對(duì)某個(gè)文件的權(quán)限,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10python如何導(dǎo)出微信公眾號(hào)文章方法詳解
這篇文章主要介紹了python如何導(dǎo)出微信公眾號(hào)文章方法詳解,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08Python即時(shí)網(wǎng)絡(luò)爬蟲項(xiàng)目啟動(dòng)說明詳解
這篇文章主要為大家詳細(xì)介紹了Python即時(shí)網(wǎng)絡(luò)爬蟲項(xiàng)目啟動(dòng)說明,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02Python如何把十進(jìn)制數(shù)轉(zhuǎn)換成ip地址
這篇文章主要介紹了Python如何把十進(jìn)制數(shù)轉(zhuǎn)換成ip地址,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05python解釋器pycharm安裝及環(huán)境變量配置教程圖文詳解
這篇文章主要介紹了python解釋器pycharm安裝及環(huán)境變量配置教程圖文詳解,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02使用IPython或Spyder將省略號(hào)表示的內(nèi)容完整輸出
這篇文章主要介紹了使用IPython或Spyder將省略號(hào)表示的內(nèi)容完整輸出,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-04-04python 定時(shí)任務(wù)去檢測(cè)服務(wù)器端口是否通的實(shí)例
今天小編就為大家分享一篇python 定時(shí)任務(wù)去檢測(cè)服務(wù)器端口是否通的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-01-01