Python中unittest的斷言方法詳解
斷言方法:
是unittest提供的一組方法,可以通過這些方法完成期望結(jié)果和實(shí)際結(jié)果的對比
方法有:
assert+空格+要判斷的語句+逗號+'報(bào)錯(cuò)語句' python提供
assertEqual(a,b,msg='報(bào)錯(cuò)語句') 若a==b不報(bào)錯(cuò),否則報(bào)錯(cuò)內(nèi)容為msg
assertNotEqual(a,b,msg='報(bào)錯(cuò)語句') 若a!=b不報(bào)錯(cuò),否則報(bào)錯(cuò)內(nèi)容為msg
assertIn(a,b,msg='報(bào)錯(cuò)語句') 若a in b不報(bào)錯(cuò),否則報(bào)錯(cuò)內(nèi)容為msg
assertNotIn(a,b,msg='報(bào)錯(cuò)語句') 若a not in b不報(bào)錯(cuò),否則報(bào)錯(cuò)內(nèi)容為msg
assertTrue(a,msg='報(bào)錯(cuò)語句') a為表達(dá)式,若a成立不報(bào)錯(cuò),否則直接報(bào)錯(cuò)
assertFalse(a,msg='報(bào)錯(cuò)語句') a為表達(dá)式,若a不成立不報(bào)錯(cuò),否則直接報(bào)錯(cuò)
assertIsInstance(obj,cls,msg='報(bào)錯(cuò)語句') obj是cls的一個(gè)實(shí)例,是則不報(bào)錯(cuò),否則直接報(bào)錯(cuò)
assertNotIsInstance(obj,cls,msg='報(bào)錯(cuò)語句') obj不是cls的一個(gè)實(shí)例,不是不報(bào)錯(cuò),否則直接報(bào)錯(cuò)
assertIsNone(a,msg='報(bào)錯(cuò)語句') a為None不報(bào)錯(cuò),否則直接報(bào)錯(cuò)
assertNotIsNone(a,msg='報(bào)錯(cuò)語句') a不為None不報(bào)錯(cuò),否則直接報(bào)錯(cuò)
下面是做的例子,后邊是運(yùn)行結(jié)果:
運(yùn)行結(jié)果顯示:
OK和'.'代表開發(fā)和測試的代碼無問題
F(FAIL)開發(fā)代碼有問題,測試代碼無問題
E(ERROR)測試代碼有問題,開發(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('測試開始') 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('測試結(jié)束') unittest.main()
總結(jié)
到此這篇關(guān)于Python中unittest的斷言方法詳解的文章就介紹到這了,更多相關(guān)Python unittest斷言內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python常用時(shí)間庫time、datetime與時(shí)間格式之間的轉(zhuǎn)換教程
Python項(xiàng)目中很多時(shí)候會需要將時(shí)間在Datetime格式和TimeStamp格式之間轉(zhuǎn)化,下面這篇文章主要給大家介紹了關(guān)于python常用時(shí)間庫time、datetime與時(shí)間格式之間轉(zhuǎn)換的相關(guān)資料,需要的朋友可以參考下2023-02-02Python數(shù)據(jù)挖掘中常用的五種AutoEDA 工具總結(jié)
大家好,我們都知道在數(shù)據(jù)挖掘的過程中,數(shù)據(jù)探索性分析一直是非常耗時(shí)的一個(gè)環(huán)節(jié),但也是繞不開的一個(gè)環(huán)節(jié),本篇文章帶你盤點(diǎn)數(shù)據(jù)挖掘中常見的5種 AutoEDA 工具2021-11-11Python將CSV文件轉(zhuǎn)化為HTML文件的操作方法
很多朋友問小編Python如何將CSV文件轉(zhuǎn)化為HTML文件,csv文件讀取怎么操作呢?帶著這些問題一起通過本文學(xué)習(xí)吧2021-06-06python腳本當(dāng)作Linux中的服務(wù)啟動實(shí)現(xiàn)方法
今天小編就為大家分享一篇python腳本當(dāng)作Linux中的服務(wù)啟動實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06