Python中unittest的斷言方法詳解
斷言方法:
是unittest提供的一組方法,可以通過這些方法完成期望結果和實際結果的對比
方法有:
assert+空格+要判斷的語句+逗號+'報錯語句' python提供
assertEqual(a,b,msg='報錯語句') 若a==b不報錯,否則報錯內容為msg
assertNotEqual(a,b,msg='報錯語句') 若a!=b不報錯,否則報錯內容為msg
assertIn(a,b,msg='報錯語句') 若a in b不報錯,否則報錯內容為msg
assertNotIn(a,b,msg='報錯語句') 若a not in b不報錯,否則報錯內容為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不報錯,否則直接報錯
下面是做的例子,后邊是運行結果:
運行結果顯示:
OK和'.'代表開發(fā)和測試的代碼無問題
F(FAIL)開發(fā)代碼有問題,測試代碼無問題
E(ERROR)測試代碼有問題,開發(fā)代碼不確定
assert 3 == 5, '錯了' # 錯了 assert type(8) is int, '錯了' # 運行成功,不顯示結果 assert id(9) is int, '錯了' # 錯了 assert type(id(9)) is int, '錯了' # 運行成功,不顯示結果 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('我是一個函數') self.assertIsNone(myfum,msg = '錯了') # 報錯 self.assertIsNone(myfum(),msg = '錯了') # OK self.assertIsNone(print,msg = '錯了') # 報錯 self.assertIsNone(print(),msg = '錯了') # OK def tearDown(self): print('測試結束') unittest.main()
總結
到此這篇關于Python中unittest的斷言方法詳解的文章就介紹到這了,更多相關Python unittest斷言內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python常用時間庫time、datetime與時間格式之間的轉換教程
Python項目中很多時候會需要將時間在Datetime格式和TimeStamp格式之間轉化,下面這篇文章主要給大家介紹了關于python常用時間庫time、datetime與時間格式之間轉換的相關資料,需要的朋友可以參考下2023-02-02