Python中unittest的斷言方法詳解
斷言方法:
是unittest提供的一組方法,可以通過這些方法完成期望結(jié)果和實際結(jié)果的對比
方法有:
assert+空格+要判斷的語句+逗號+'報錯語句' python提供
assertEqual(a,b,msg='報錯語句') 若a==b不報錯,否則報錯內(nèi)容為msg
assertNotEqual(a,b,msg='報錯語句') 若a!=b不報錯,否則報錯內(nèi)容為msg
assertIn(a,b,msg='報錯語句') 若a in b不報錯,否則報錯內(nèi)容為msg
assertNotIn(a,b,msg='報錯語句') 若a not in b不報錯,否則報錯內(nèi)容為msg
assertTrue(a,msg='報錯語句') a為表達式,若a成立不報錯,否則直接報錯
assertFalse(a,msg='報錯語句') a為表達式,若a不成立不報錯,否則直接報錯
assertIsInstance(obj,cls,msg='報錯語句') obj是cls的一個實例,是則不報錯,否則直接報錯
assertNotIsInstance(obj,cls,msg='報錯語句') obj不是cls的一個實例,不是不報錯,否則直接報錯
assertIsNone(a,msg='報錯語句') a為None不報錯,否則直接報錯
assertNotIsNone(a,msg='報錯語句') a不為None不報錯,否則直接報錯
下面是做的例子,后邊是運行結(jié)果:
運行結(jié)果顯示:
OK和'.'代表開發(fā)和測試的代碼無問題
F(FAIL)開發(fā)代碼有問題,測試代碼無問題
E(ERROR)測試代碼有問題,開發(fā)代碼不確定
assert 3 == 5, '錯了' # 錯了
assert type(8) is int, '錯了' # 運行成功,不顯示結(jié)果
assert id(9) is int, '錯了' # 錯了
assert type(id(9)) is int, '錯了' # 運行成功,不顯示結(jié)果
import unittest
class Test(unittest.TestCase):
def setUp(self):
print('測試開始')
def testEqual(self):
self.assertEqual(10,100,msg = '錯了') # 錯了
self.assertEqual('a','a',msg = '錯了') # OK
self.assertNotEqual('a','b',msg = '錯了') # OK
self.assertIn(1,[2,3,4,5],msg = '錯了') # 錯了
self.assertNotIn('a',[2,3,4,5],msg = '錯了') # OK
self.assertNotIn('a',{'a':1},msg = '錯了') # 錯了
self.assertNotIn(1,{'a':1},msg = '錯了') # OK
self.assertTrue(6 == 6,msg = '錯了') # OK
self.assertTrue(bool(3) is False,msg = '錯了') # 錯了
self.assertFalse(bool is False,msg = '錯了') # OK
class People:
print('我是人類')
class Dog:
print('我是犬類')
xiaoming = People()
gouzi = Dog()
self.assertIsInstance(gouzi,People,msg = '錯了') # 報錯
self.assertNotIsInstance(xiaoming,People,msg = '錯了') # 報錯
self.assertNotIsInstance(bool,int,msg = '錯了') # OK
self.assertIsInstance(False,int,msg = '錯了') # OK
self.assertIsInstance(3,bool,msg = '錯了') # 報錯
self.assertIsNone(None,msg = '錯了') # OK
self.assertIsNone(0,msg = '錯了') # 報錯
self.assertIsNone('',msg = '錯了') # 報錯
self.assertIsNone(None,msg = '錯了') # OK
def myfum():
print('我是一個函數(shù)')
self.assertIsNone(myfum,msg = '錯了') # 報錯
self.assertIsNone(myfum(),msg = '錯了') # OK
self.assertIsNone(print,msg = '錯了') # 報錯
self.assertIsNone(print(),msg = '錯了') # OK
def tearDown(self):
print('測試結(jié)束')
unittest.main()總結(jié)
到此這篇關(guān)于Python中unittest的斷言方法詳解的文章就介紹到這了,更多相關(guān)Python unittest斷言內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
pandas groupby分組對象的組內(nèi)排序解決方案
這篇文章主要介紹了pandas groupby分組對象的組內(nèi)排序解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03
Python如何在循環(huán)內(nèi)使用list.remove()
這篇文章主要介紹了Python如何在循環(huán)內(nèi)使用list.remove(),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-06-06
解決python 執(zhí)行sql語句時所傳參數(shù)含有單引號的問題
這篇文章主要介紹了解決python 執(zhí)行sql語句時所傳參數(shù)含有單引號的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06
基于opencv和pillow實現(xiàn)人臉識別系統(tǒng)(附demo)
人臉識別就是一個程序能識別給定圖像或視頻中的人臉,本文主要介紹了opencv和pillow實現(xiàn)人臉識別系統(tǒng),本文不涉及分類器、訓練識別器等算法原理,感興趣的可以了解一下2021-11-11

