Python中assert斷言是什么-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買(mǎi)多久送多久,劃算不套路!

成都創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括洛浦網(wǎng)站建設(shè)、洛浦網(wǎng)站制作、洛浦網(wǎng)頁(yè)制作以及洛浦網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,洛浦網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到洛浦省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

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

python自動(dòng)化測(cè)試中尋找元素并進(jìn)行操作,如果在元素好找的情況下,相信大家都可以較熟練地編寫(xiě)用例腳本了,但光進(jìn)行操作可能還不夠,有時(shí)候也需要對(duì)預(yù)期結(jié)果進(jìn)行判斷。

常用

這里介紹幾個(gè)常用斷言的使用方法,可以一定程度上幫助大家對(duì)預(yù)期結(jié)果進(jìn)行判斷。-

assertEqual

assertNotEqual

assertTrue

assertFalse

assertIsNone

assertIsNotNone

assertEqual 和 assertNotEqual

assertEqual:如兩個(gè)值相等,則pass

assertNotEqual:如兩個(gè)值不相等,則pass

使用方法:

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

assertTrue和assertFalse

assertTrue:判斷bool值為T(mén)rue,則pass

assertFalse:判斷bool值為False,則Pass

使用方法:

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

assertIsNone和assertIsNotNone

assertIsNone:不存在,則pass

assertIsNotNone:存在,則pass

使用方法:

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

總結(jié):

常用

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

使用時(shí)機(jī):

那么我們什么時(shí)候應(yīng)該使用斷言呢?如果沒(méi)有特別的目的,斷言應(yīng)該用于如下情況:

(1)防御性的編程

(2)運(yùn)行時(shí)對(duì)程序邏輯的檢測(cè)

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

(4)程序中的常量

(5)檢查文檔

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

在代碼開(kāi)始添加注釋是個(gè)好的開(kāi)端,但是人們都不太喜歡讀和更新這些注釋,這些注釋會(huì)很快變得過(guò)時(shí)。但對(duì)于斷言,我們可以同時(shí)對(duì)這塊代碼編寫(xiě)文檔,如果這些斷言被違反了,會(huì)直接引起一個(gè)簡(jiǎn)單而又直接的失敗。

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()

關(guān)于Python中assert斷言是什么就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

文章名稱:Python中assert斷言是什么-創(chuàng)新互聯(lián)
文章出自:http://bm7419.com/article4/cesdie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、網(wǎng)站制作、品牌網(wǎng)站制作網(wǎng)站設(shè)計(jì)、服務(wù)器托管企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)