国产睡熟迷奷白丝护士系列精品,中文色字幕网站,免费h网站在线观看的,亚洲开心激情在线

      <sup id="hb9fh"></sup>
          1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構

            手機站
            千鋒教育

            千鋒學習站 | 隨時隨地免費學

            千鋒教育

            掃一掃進入千鋒手機站

            領取全套視頻
            千鋒教育

            關注千鋒學習站小程序
            隨時隨地免費學習課程

            當前位置:首頁  >  技術干貨  > pytest框架四之斷言

            pytest框架四之斷言

            來源:千鋒教育
            發(fā)布人:qyf
            時間: 2022-09-02 17:12:10 1662109930

              今天這篇技術文章要分享的是pytest框架當中的斷言。會從以下幾個方面來分享:

            pytest框架四之斷言

              一、斷言的概念

              簡單來講就是實際結果和期望結果去對比,符合預期結果那就測試通過,不符合預期那就測試失敗。

              二、pytest框架斷言常用的方法

              在pytest框架里面,斷言主要是用到assert

              assert xx 判斷xx為真

              assert not xx 判斷xx不為真

              assert a in b 判斷b包含a

              assert a == b 判斷a等于b

              assert a != b 判斷a不等于b

              三、pytest框架的斷言與unittest框架的斷言有什么區(qū)別

              在pytest框架里面,斷言只用一種方式assert就可以實現(xiàn)了,簡單方便。

              unittest框架里面,斷言分了好幾種類型:

              1、基本的布爾斷言,即:要么正確,要么錯誤的驗證

              斷言方法 斷言描述

              assertEqual(arg1, arg2, msg=None) 驗證arg1=arg2,不等則fail

              assertNotEqual(arg1, arg2, msg=None) 驗證arg1 != arg2, 相等則fail

              assertTrue(expr, msg=None) 驗證expr是true,如果為false,則fail

              assertFalse(expr,msg=None) 驗證expr是false,如果為true,則fail

              assertIs(arg1, arg2, msg=None) 驗證arg1、arg2是同一個對象,不是則fail

              assertIsNot(arg1, arg2, msg=None) 驗證arg1、arg2不是同一個對象,是則fail

              assertIsNone(expr, msg=None) 驗證expr是None,不是則fail

              assertIsNotNone(expr, msg=None) 驗證expr不是None,是則fail

              assertIn(arg1, arg2, msg=None) 驗證arg1是arg2的子串,不是則fail

              assertNotIn(arg1, arg2, msg=None) 驗證arg1不是arg2的子串,是則fail

              assertIsInstance(obj, cls, msg=None) 驗證obj是cls的實例,不是則fail

              assertNotIsInstance(obj, cls, msg=None) 驗證obj不是cls的實例,是則fail

              2.比較斷言,如比較兩個變量的值(跟上面的布爾斷言區(qū)別不大,主要是通過比較兩個變量的值得出布爾值)

              assertAlmostEqual (first, second, places = 7, msg = None, delta = None)

              驗證first約等于second。 palces: 指定精確到小數(shù)點后多少位,默認為7

              assertNotAlmostEqual (first, second, places, msg, delta)

              驗證first不約等于second。 palces: 指定精確到小數(shù)點后多少位,默認為7

              注: 在上述的兩個函數(shù)中,如果delta指定了值,則first和second之間的差值必須≤delta

              assertGreater (first, second, msg = None)

              驗證first > second,否則fail

              assertGreaterEqual (first, second, msg = None)

              驗證first ≥ second,否則fail

              assertLess (first, second, msg = None)

              驗證first < second,否則fail

              assertLessEqual (first, second, msg = None)

              驗證first ≤ second,否則fail

              assertRegexpMatches (text, regexp, msg = None)

              驗證正則表達式regexp搜索匹配的文本text。 regexp:通常使用re.search()

              assertNotRegexpMatches (text, regexp, msg = None)

              驗證正則表達式regexp搜索不匹配的文本text。 regexp:通常使用re.search()

              3.復雜斷言(一般用的比較少,像斷言兩個列表、元組等) (省略)

              從上面也可以看出來,unittest框架的斷言的確是比pytest框架要復雜很多。

              四、pytest框架斷言的使用

              除了上面說的常用的斷言方法:

              assert xx 判斷xx為真

              assert not xx 判斷xx不為真

              assert a in b 判斷b包含a

              assert a == b 判斷a等于b

              assert a != b 判斷a不等于b

              還可以這么用:

              1、想知道斷言失敗時的一些關于失敗的原因等說明信息,assert也能滿足該功能。

              assert 斷言的內(nèi)容,”斷言的說明”

              2、一些測試用例中,比如異常測試用例,測試的結果必然是失敗會報出異常的。這時候用例的期望結果就是該異常。

              對于異常的斷言,Pytest的語法是:with pytest.raises(異常類型)

              最后給大家附上代碼:

              # #!/usr/bin/python3

              # -*- coding: utf-8 -*-

              # @Author : 九九

              # @FileName: test_assert.py

              # @Software: PyCharm

              import pytest

              # 定義一個測試類

              class TestAssert():

              # 定義一個功能

              # 傳一個變量,判斷變量是否為偶數(shù),如果為偶數(shù)則用例通過,否則用例失敗

              def func1(self,a):

              if a%2==0:

              return True

              else:

              return False

              # 定義一個測試用例

              def test_func1(self):

              assert self.func1(3)

              # 定義一個測試用例,驗證包含斷言的方法

              def test_in(self):

              # 定義一個列表

              list_demo=[1,2,3,4,5,6]

              # 驗證數(shù)字3是不是在list_demo里面,如果在,則用例通過,否則用例失敗

              assert 3 in list_demo

              # 定義一個測試用例,驗證斷言的不包含方法

              def test_notin(self):

              list_demo = [1, 2, 3, 4, 5, 6]

              # 驗證數(shù)字7不包含在list_demo里面,如果不包含,則用例通過,否則用例失敗

              assert 5 not in list_demo

              # 定義一個測試用例,驗證斷言的判斷相等的方法

              def test_ass(self):

              name="九九"

              assert name=="九","變量的名字,和最終預期的名字不一致,所以失敗"

              # 定義一個測試用例,驗證異常信息斷言

              def test_zero_division(self):

              # 斷言異常

              with pytest.raises(ZeroDivisionError) as exc:

              1/0

              # 判斷異常的類型是否和預期一致

              assert exc.type==ZeroDivisionError

              # 斷言異常的value值和預期是否一致

              assert "division by sss" in str(exc.value)

              更多關于軟件測試培訓的問題,歡迎咨詢千鋒教育在線名師。千鋒教育擁有多年IT培訓服務經(jīng)驗,采用全程面授高品質(zhì)、高體驗培養(yǎng)模式,擁有國內(nèi)一體化教學管理及學員服務,助力更多學員實現(xiàn)高薪夢想。

            tags:
            聲明:本站稿件版權均屬千鋒教育所有,未經(jīng)許可不得擅自轉載。
            10年以上業(yè)內(nèi)強師集結,手把手帶你蛻變精英
            請您保持通訊暢通,專屬學習老師24小時內(nèi)將與您1V1溝通
            免費領取
            今日已有369人領取成功
            劉同學 138****2860 剛剛成功領取
            王同學 131****2015 剛剛成功領取
            張同學 133****4652 剛剛成功領取
            李同學 135****8607 剛剛成功領取
            楊同學 132****5667 剛剛成功領取
            岳同學 134****6652 剛剛成功領取
            梁同學 157****2950 剛剛成功領取
            劉同學 189****1015 剛剛成功領取
            張同學 155****4678 剛剛成功領取
            鄒同學 139****2907 剛剛成功領取
            董同學 138****2867 剛剛成功領取
            周同學 136****3602 剛剛成功領取
            相關推薦HOT
            軟件開發(fā)管理流程中會出現(xiàn)哪些問題?

            一、需求不清需求不明確是導致項目失敗的主要原因之一。如果需求沒有清晰定義,開發(fā)人員可能會開發(fā)出不符合用戶期望的產(chǎn)品。二、通信不足溝通問...詳情>>

            2023-10-14 13:43:21
            軟件定制開發(fā)中的敏捷開發(fā)是什么?

            軟件定制開發(fā)中的敏捷開發(fā)是什么軟件定制開發(fā)中的敏捷開發(fā),從宏觀上看,是一個高度關注人員交互,持續(xù)開發(fā)與交付,接受需求變更并適應環(huán)境變化...詳情>>

            2023-10-14 13:24:57
            什么是PlatformIo?

            PlatformIO是什么PlatformIO是一個全面的物聯(lián)網(wǎng)開發(fā)平臺,它為眾多硬件平臺和開發(fā)環(huán)境提供了統(tǒng)一的工作流程,有效簡化了開發(fā)過程,并能兼容各種...詳情>>

            2023-10-14 12:55:06
            云快照與自動備份有什么區(qū)別?

            1、定義和目標不同云快照的主要目標是提供一種快速恢復數(shù)據(jù)的方法,它只記錄在快照時間點后的數(shù)據(jù)變化,而不是所有的數(shù)據(jù)。自動備份的主要目標...詳情>>

            2023-10-14 12:48:59
            服務器為什么要用Linux?

            服務器為什么要用Linux作為服務器操作系統(tǒng)的優(yōu)選,Linux在眾多選擇中脫穎而出。Linux作為服務器操作系統(tǒng)的優(yōu)選,有其獨特的優(yōu)勢和特點。包括其...詳情>>

            2023-10-14 12:34:11