Python中unittest的斷言方法詳解
斷言方法:
是unittest提供的一組方法,可以通過(guò)這些方法完成期望結(jié)果和實(shí)際結(jié)果的對(duì)比
方法有:
assert+空格+要判斷的語(yǔ)句+逗號(hào)+'報(bào)錯(cuò)語(yǔ)句' python提供
assertEqual(a,b,msg='報(bào)錯(cuò)語(yǔ)句') 若a==b不報(bào)錯(cuò),否則報(bào)錯(cuò)內(nèi)容為msg
assertNotEqual(a,b,msg='報(bào)錯(cuò)語(yǔ)句') 若a!=b不報(bào)錯(cuò),否則報(bào)錯(cuò)內(nèi)容為msg
assertIn(a,b,msg='報(bào)錯(cuò)語(yǔ)句') 若a in b不報(bào)錯(cuò),否則報(bào)錯(cuò)內(nèi)容為msg
assertNotIn(a,b,msg='報(bào)錯(cuò)語(yǔ)句') 若a not in b不報(bào)錯(cuò),否則報(bào)錯(cuò)內(nèi)容為msg
assertTrue(a,msg='報(bào)錯(cuò)語(yǔ)句') a為表達(dá)式,若a成立不報(bào)錯(cuò),否則直接報(bào)錯(cuò)
assertFalse(a,msg='報(bào)錯(cuò)語(yǔ)句') a為表達(dá)式,若a不成立不報(bào)錯(cuò),否則直接報(bào)錯(cuò)
assertIsInstance(obj,cls,msg='報(bào)錯(cuò)語(yǔ)句') obj是cls的一個(gè)實(shí)例,是則不報(bào)錯(cuò),否則直接報(bào)錯(cuò)
assertNotIsInstance(obj,cls,msg='報(bào)錯(cuò)語(yǔ)句') obj不是cls的一個(gè)實(shí)例,不是不報(bào)錯(cuò),否則直接報(bào)錯(cuò)
assertIsNone(a,msg='報(bào)錯(cuò)語(yǔ)句') a為None不報(bào)錯(cuò),否則直接報(bào)錯(cuò)
assertNotIsNone(a,msg='報(bào)錯(cuò)語(yǔ)句') a不為None不報(bào)錯(cuò),否則直接報(bào)錯(cuò)
下面是做的例子,后邊是運(yùn)行結(jié)果:
運(yùn)行結(jié)果顯示:
OK和'.'代表開(kāi)發(fā)和測(cè)試的代碼無(wú)問(wèn)題
F(FAIL)開(kāi)發(fā)代碼有問(wèn)題,測(cè)試代碼無(wú)問(wèn)題
E(ERROR)測(cè)試代碼有問(wèn)題,開(kāi)發(fā)代碼不確定
assert 3 == 5, '錯(cuò)了' # 錯(cuò)了
assert type(8) is int, '錯(cuò)了' # 運(yùn)行成功,不顯示結(jié)果
assert id(9) is int, '錯(cuò)了' # 錯(cuò)了
assert type(id(9)) is int, '錯(cuò)了' # 運(yùn)行成功,不顯示結(jié)果
import unittest
class Test(unittest.TestCase):
def setUp(self):
print('測(cè)試開(kāi)始')
def testEqual(self):
self.assertEqual(10,100,msg = '錯(cuò)了') # 錯(cuò)了
self.assertEqual('a','a',msg = '錯(cuò)了') # OK
self.assertNotEqual('a','b',msg = '錯(cuò)了') # OK
self.assertIn(1,[2,3,4,5],msg = '錯(cuò)了') # 錯(cuò)了
self.assertNotIn('a',[2,3,4,5],msg = '錯(cuò)了') # OK
self.assertNotIn('a',{'a':1},msg = '錯(cuò)了') # 錯(cuò)了
self.assertNotIn(1,{'a':1},msg = '錯(cuò)了') # OK
self.assertTrue(6 == 6,msg = '錯(cuò)了') # OK
self.assertTrue(bool(3) is False,msg = '錯(cuò)了') # 錯(cuò)了
self.assertFalse(bool is False,msg = '錯(cuò)了') # OK
class People:
print('我是人類')
class Dog:
print('我是犬類')
xiaoming = People()
gouzi = Dog()
self.assertIsInstance(gouzi,People,msg = '錯(cuò)了') # 報(bào)錯(cuò)
self.assertNotIsInstance(xiaoming,People,msg = '錯(cuò)了') # 報(bào)錯(cuò)
self.assertNotIsInstance(bool,int,msg = '錯(cuò)了') # OK
self.assertIsInstance(False,int,msg = '錯(cuò)了') # OK
self.assertIsInstance(3,bool,msg = '錯(cuò)了') # 報(bào)錯(cuò)
self.assertIsNone(None,msg = '錯(cuò)了') # OK
self.assertIsNone(0,msg = '錯(cuò)了') # 報(bào)錯(cuò)
self.assertIsNone('',msg = '錯(cuò)了') # 報(bào)錯(cuò)
self.assertIsNone(None,msg = '錯(cuò)了') # OK
def myfum():
print('我是一個(gè)函數(shù)')
self.assertIsNone(myfum,msg = '錯(cuò)了') # 報(bào)錯(cuò)
self.assertIsNone(myfum(),msg = '錯(cuò)了') # OK
self.assertIsNone(print,msg = '錯(cuò)了') # 報(bào)錯(cuò)
self.assertIsNone(print(),msg = '錯(cuò)了') # OK
def tearDown(self):
print('測(cè)試結(jié)束')
unittest.main()總結(jié)
到此這篇關(guān)于Python中unittest的斷言方法詳解的文章就介紹到這了,更多相關(guān)Python unittest斷言內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python動(dòng)態(tài)屬性與反射機(jī)制方式
深入探索Python中的反射機(jī)制和動(dòng)態(tài)屬性的細(xì)節(jié),對(duì)我們來(lái)說(shuō)是編寫具有適應(yīng)性和高可擴(kuò)展性程序的關(guān)鍵,本篇文章旨在通過(guò)詳盡的概念介紹和精心設(shè)計(jì)的代碼示例,加強(qiáng)您對(duì)這些核心概念的把握,并助您在實(shí)踐中運(yùn)用自如2024-06-06
Python反向傳播實(shí)現(xiàn)線性回歸步驟詳細(xì)講解
回歸是監(jiān)督學(xué)習(xí)的一個(gè)重要問(wèn)題,回歸用于預(yù)測(cè)輸入變量和輸出變量之間的關(guān)系,特別是當(dāng)輸入變量的值發(fā)生變化時(shí),輸出變量的值也隨之發(fā)生變化?;貧w模型正是表示從輸入變量到輸出變量之間映射的函數(shù)2022-10-10
pandas groupby分組對(duì)象的組內(nèi)排序解決方案
這篇文章主要介紹了pandas groupby分組對(duì)象的組內(nèi)排序解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03
對(duì)python中大文件的導(dǎo)入與導(dǎo)出方法詳解
今天小編就為大家分享一篇對(duì)python中大文件的導(dǎo)入與導(dǎo)出方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12
Python 70行代碼實(shí)現(xiàn)簡(jiǎn)單算式計(jì)算器解析
這篇文章主要介紹了Python 70行代碼實(shí)現(xiàn)簡(jiǎn)單算式計(jì)算器解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
Python如何在循環(huán)內(nèi)使用list.remove()
這篇文章主要介紹了Python如何在循環(huán)內(nèi)使用list.remove(),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
解決python 執(zhí)行sql語(yǔ)句時(shí)所傳參數(shù)含有單引號(hào)的問(wèn)題
這篇文章主要介紹了解決python 執(zhí)行sql語(yǔ)句時(shí)所傳參數(shù)含有單引號(hào)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06
基于opencv和pillow實(shí)現(xiàn)人臉識(shí)別系統(tǒng)(附demo)
人臉識(shí)別就是一個(gè)程序能識(shí)別給定圖像或視頻中的人臉,本文主要介紹了opencv和pillow實(shí)現(xiàn)人臉識(shí)別系統(tǒng),本文不涉及分類器、訓(xùn)練識(shí)別器等算法原理,感興趣的可以了解一下2021-11-11

