溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中assert斷言是什么

發(fā)布時間:2020-09-24 09:43:51 來源:億速云 閱讀:231 作者:Leah 欄目:編程語言

這篇文章運用簡單易懂的例子給大家介紹Python中assert斷言是什么,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

python自動化測試中尋找元素并進行操作,如果在元素好找的情況下,相信大家都可以較熟練地編寫用例腳本了,但光進行操作可能還不夠,有時候也需要對預期結果進行判斷。

常用

這里介紹幾個常用斷言的使用方法,可以一定程度上幫助大家對預期結果進行判斷。-

assertEqual

assertNotEqual

assertTrue

assertFalse

assertIsNone

assertIsNotNone

assertEqual 和 assertNotEqual

assertEqual:如兩個值相等,則pass

assertNotEqual:如兩個值不相等,則pass

使用方法:

assertEqual(first,second,msg)其中first與second進行比較,如果相等則通過;msg為失敗時打印的信息,選填;斷言assertNotEqual反著用就可以了。

assertTrue和assertFalse

assertTrue:判斷bool值為True,則pass

assertFalse:判斷bool值為False,則Pass

使用方法:

assertTrue(expr,msg)其中express輸入相應表達式,如果表達式為真,則pass;msg選填;斷言assertFalse如果表達式為假,則pass

assertIsNone和assertIsNotNone

assertIsNone:不存在,則pass

assertIsNotNone:存在,則pass

使用方法:

assertIsNone(obj,msg)檢查某個元素是否存在

總結:

常用

assertEqual(a, b)     a == b      
assertNotEqual(a, b)     a != b      
assertTrue(x)     bool(x) is True      
assertFalse(x)     bool(x) is False      
assertIs(a, b)     a is b     2.7
assertIsNot(a, b)     a is not b     2.7
assertIsNone(x)     x is None     2.7
assertIsNotNone(x)     x is not None     2.7
assertIn(a, b)     a in b     2.7
assertNotIn(a, b)     a not in b     2.7
assertIsInstance(a, b)     isinstance(a, b)     2.7
assertNotIsInstance(a, b)     not isinstance(a, b)     2.7

其它

assertAlmostEqual(a, b)     round(a-b, 7) == 0      
assertNotAlmostEqual(a, b)     round(a-b, 7) != 0      
assertGreater(a, b)     a > b     2.7
assertGreaterEqual(a, b)     a >= b     2.7
assertLess(a, b)     a < b     2.7
assertLessEqual(a, b)     a <= b     2.7
assertRegexpMatches(s, re)     regex.search(s)     2.7
assertNotRegexpMatches(s, re)     not regex.search(s)     2.7
assertItemsEqual(a, b)     sorted(a) == sorted(b) and works with unhashable objs     2.7
assertDictContainsSubset(a, b)     all the key/value pairs in a exist in b     2.7
assertMultiLineEqual(a, b)     strings     2.7
assertSequenceEqual(a, b)     sequences     2.7
assertListEqual(a, b)     lists     2.7
assertTupleEqual(a, b)     tuples     2.7
assertSetEqual(a, b)     sets or frozensets     2.7
assertDictEqual(a, b)     dicts     2.7
assertMultiLineEqual(a, b)     strings     2.7
assertSequenceEqual(a, b)     sequences     2.7
assertListEqual(a, b)     lists     2.7
assertTupleEqual(a, b)     tuples     2.7
assertSetEqual(a, b)     sets or frozensets     2.7assertDictEqual(a, b)     dicts     2.7

使用時機:

那么我們什么時候應該使用斷言呢?如果沒有特別的目的,斷言應該用于如下情況:

(1)防御性的編程

(2)運行時對程序邏輯的檢測

(3)合約性檢查(比如前置條件,后置條件)

(4)程序中的常量

(5)檢查文檔

(6)例:防御性編程中添加斷言

在代碼開始添加注釋是個好的開端,但是人們都不太喜歡讀和更新這些注釋,這些注釋會很快變得過時。但對于斷言,我們可以同時對這塊代碼編寫文檔,如果這些斷言被違反了,會直接引起一個簡單而又直接的失敗。

assert target in(x, y, z)
if  target ==x:  
    run_x_code()
elif  target ==y:
    run_y_code()
else:
    assert target == z
    run_z_code()

關于Python中assert斷言是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI