1. 程式人生 > >python assert斷言函數

python assert斷言函數

生成 mil 正則表達式 span lin 內容 換行 字符 直接

python assert斷言是聲明布爾值必須為真的判定,如果發生異常就說明表達式為假。
可以理解assert斷言語句為raise-if-not,用來測試表示式,其返回值為假,就會觸發異常。

self.assertEqual(a,b,msg=msg) #判斷a與.b是否一致,msg類似備註,可以為空

self.assertNotEqual(a,b,msg=msg) #判斷a與b是否不一致

self.assertTrue(a,msg=none) #判斷a是否為True

self.assertFalse(b,msg=none) #判斷b是否為false

self.assertAlmostEqual(a,b,places=none,msg=none,delta=none) #該判斷過程有點復雜,判斷過程如下

註:places與delta不能同時存在,否則出異常

#若a==b,則直接輸入正確,不判斷下面的過程

#若delta有數,places為空,判斷a與b的差的絕對值是否<=delta,滿足則正確,否則錯誤

#若delta為空,places有數,判斷b與a的差的絕對值,取小數places位,等於0則正確,否則錯誤

#若delta為空,places為空,默認賦值places=7判斷

例 assertAlmostEqual(2,2) 正確,

assertAlmostEqual(5,2,delta=4) 正確

assertAlmostEqual(5,2,delta=2) 錯誤

assertAlmostEqual(2,2.005,places=1) 正確

assertAlmostEqual(2,2.05,places=3) 錯誤

self.assertNotAlmostEqual(a,b,places=none,msg=none,delta=none) 同上,但判斷相反

註,delta與places不能同時存在,否則拋出異常

例 assertNotAlmostEqual(2,2) 錯誤

assertNotAlmostEqual(a,b,delta=c) #a不等於b 同時 a-b>c 則正確,否則錯誤

assertNotAlmostEqual(a,b,places=2)

#a不等於b 同時|b-a|*0,01 不等於0 則正確,否則錯誤

self.assertSequenceEqual #有空在研究,源碼很長

self.assertListEqual #有空研究

self.assertTupleEqual #有空在研究

self.assertSetEqual #有空在研究

self.assertIn(a,b) 判斷a in b是否成立,正確則True,否則為False

例: assertIn(“2” in “23”) 成功

assertIn(“1” in “23”) 失敗

self.assertNotIn(a,b) 判斷a in b是否成立,不成立則True 否則 False

例:assertIn(“2” in “23”) 失敗

assertIn(“1” in “23”) 成功

self.assertIs(a,b) 判斷a 與b的對象是否相同,成立則True,否則False

註,判斷是否同一對象 id(a) 若id相同,則為同一對象

例 a,b=1,1.0

assertls(a,b) 失敗

a,b=1,1

assertls(a,b) 成功

self.assertIsNot(a,b) 判斷a 與b的對象是否相同,不成立True,否則False

self.assertDictEqual(a,b) #判斷字典a和字典b是否相等,a,b為字典

self.assertDictContainsSubset

self.assertItemsEqual(a,b) #比較兩字符串是否一致,同sorted(a)==sorted(b)

註:sorted排序,方法內部為,將a,b分別list,生成各自列表,在sorted排序在比對

self.assertMultiLineEqual(a,b) #比較a文本與b文本是否一致,即便多了個換行,也會區分

self.assertLess(a,b) #判斷a<b 成立則通過,否則失敗

self.assertLessEqual #判斷a<=b 成立則通過,否則失敗

self.assertGreater #判斷a>b 成立則通過,否則失敗

self.assertGreaterEqual #判斷a>=b 成立則通過,否則失敗

self.assertIsNone(obj=””) #判斷obj=None 成立則通過,否則失敗

self.assertIsNotNone #判斷obj=None 成立則失敗,否則通過

self.assertIsInstance(a,b) #判斷a的數據類型是否為b,isinstance(a,b) 成立則通過,否則失敗

self.assertNotIsInstance #判斷同上相反

self.assertRaisesRegexp #正則判斷匹配,沒仔細看,過程復雜

self.assertRegexpMatches(a,b) #正則匹配 同re.search(b,a)匹配有則成功,否則失敗

註:a為匹配的正則表達式,必須字符型,b 為要匹配的內容

self.assertNotRegexpMatches #同上,判斷相反

python assert斷言函數