国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

精進(jìn)單元測(cè)試技能 —— Pytest斷言的藝術(shù)!

這篇具有很好參考價(jià)值的文章主要介紹了精進(jìn)單元測(cè)試技能 —— Pytest斷言的藝術(shù)!。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

本篇文章主要是闡述Pytest在斷言方面的應(yīng)用。讓大家能夠了解和掌握Pytest針對(duì)斷言設(shè)計(jì)了多種功能以適應(yīng)在不同測(cè)試場(chǎng)景上使用。

了解斷言的基礎(chǔ)

在Pytest中,斷言是通過?assert?語句來實(shí)現(xiàn)的。簡(jiǎn)單的斷言通常用于驗(yàn)證預(yù)期值和實(shí)際值是否相等,例如:

def test_addition():    result = add(2, 3)    assert result == 5

然而除此之外,Pytest提供了更多豐富的斷言方式,包括邏輯表達(dá)式、集合比較、異常捕獲等,這些功能使得我們能夠更全面地覆蓋測(cè)試場(chǎng)景。

利用邏輯表達(dá)式

Pytest的斷言支持豐富的邏輯表達(dá)式,使得我們可以更靈活地組合多個(gè)條件。例如,我們可以使用?and?、ornot?等關(guān)鍵詞來連接多個(gè)斷言,從而實(shí)現(xiàn)更復(fù)雜的測(cè)試邏輯:

def test_complex_logic():    result = some_complex_function()    assert result > 0 and result % 2 == 0

通過充分利用邏輯表達(dá)式,我們能夠在一個(gè)測(cè)試用例中覆蓋多個(gè)相關(guān)的斷言,從而提高測(cè)試的全面性和可讀性。

集合比較

在實(shí)際的測(cè)試中,有時(shí)我們需要比較集合之間的差異,Pytest提供了?assert set1 == set2?的方式來完成這樣的比較。這對(duì)于驗(yàn)證返回的無序集合是否符合預(yù)期非常有用:???????

def test_set_comparison():    result = get_some_data()    expected_set = {1, 2, 3, 4, 5}    assert set(result) == expected_set

通過集合比較,我們能夠簡(jiǎn)潔而清晰地驗(yàn)證無序集合的相等性,確保測(cè)試的準(zhǔn)確性。

現(xiàn)在我也找了很多測(cè)試的朋友,做了一個(gè)分享技術(shù)的交流群,共享了很多我們收集的技術(shù)文檔和視頻教程。
如果你不想再體驗(yàn)自學(xué)時(shí)找不到資源,沒人解答問題,堅(jiān)持幾天便放棄的感受
可以加入我們一起交流。而且還有很多在自動(dòng)化,性能,安全,測(cè)試開發(fā)等等方面有一定建樹的技術(shù)大牛
分享他們的經(jīng)驗(yàn),還會(huì)分享很多直播講座和技術(shù)沙龍
可以免費(fèi)學(xué)習(xí)!劃重點(diǎn)!開源的?。?!
qq群號(hào):691998057【暗號(hào):csdn999】

精進(jìn)單元測(cè)試技能 —— Pytest斷言的藝術(shù)!,技術(shù)分享,自動(dòng)化測(cè)試,軟件測(cè)試,單元測(cè)試,pytest,壓力測(cè)試,測(cè)試工程師,自動(dòng)化測(cè)試,性能測(cè)試,軟件測(cè)試

異常斷言

在編寫測(cè)試用例時(shí),經(jīng)常需要驗(yàn)證某個(gè)函數(shù)是否能夠正確地拋出異常。Pytest提供了?pytest.raises?裝飾器來實(shí)現(xiàn)異常斷言:???????

import pytest

def test_exception():    with pytest.raises(ValueError, match='Invalid value'):        raise ValueError('Invalid value')

通過使用?pytest.raises,我們可以明確地指定期望的異常類型,并且可以通過?match?參數(shù)驗(yàn)證異常消息是否符合預(yù)期。這樣的斷言方式使得我們能夠更精確地檢查代碼中的異常處理邏輯。

定制斷言函數(shù)

為了提高測(cè)試用例的可維護(hù)性,我們可以考慮編寫定制的斷言函數(shù),使得測(cè)試用例更加簡(jiǎn)潔而易讀。例如,我們可以編寫一個(gè)用于驗(yàn)證兩個(gè)浮點(diǎn)數(shù)是否在一定誤差范圍內(nèi)相等的斷言函數(shù):???????

def assert_float_equal(value1, value2, epsilon=1e-6):    assert abs(value1 - value2) < epsilon

def test_float_comparison():    result = calculate_float()    expected_result = 3.14159    assert_float_equal(result, expected_result)

通過編寫定制的斷言函數(shù),我們不僅能夠提高測(cè)試用例的可讀性,還能夠在后續(xù)的維護(hù)過程中更輕松地調(diào)整斷言邏輯。

使用參數(shù)化測(cè)試

Pytest提供了參數(shù)化測(cè)試的功能,使得我們能夠在同一個(gè)測(cè)試用例中使用不同的參數(shù)運(yùn)行多次測(cè)試,進(jìn)而提高測(cè)試的覆蓋范圍。結(jié)合參數(shù)化測(cè)試和斷言,我們能夠更全面地驗(yàn)證代碼的不同輸入組合。???????

import pytest

@pytest.mark.parametrize("input_data, expected_result", [    ((2, 3), 5),    ((-1, 1), 0),    ((0, 0), 0),])def test_addition(input_data, expected_result):    result = add(*input_data)    assert result == expected_result

通過參數(shù)化測(cè)試,我們可以輕松地?cái)U(kuò)展測(cè)試用例,驗(yàn)證不同輸入情況下的函數(shù)行為,而斷言則保證了每個(gè)參數(shù)組合的準(zhǔn)確性。

結(jié)合文檔和注釋

在編寫測(cè)試用例時(shí),良好的文檔和注釋是確保測(cè)試易于理解和維護(hù)的關(guān)鍵。通過在測(cè)試用例中添加清晰的注釋,解釋每個(gè)斷言的目的和期望結(jié)果,可以幫助其他開發(fā)者更容易地理解測(cè)試的目的。?????????????

def test_complex_behavior():    # Ensure that the function behaves correctly in normal cases    result = some_complex_function()    assert result > 0

    # Ensure that a specific edge case is handled properly    edge_result = some_complex_function(0)    assert edge_result == 42

結(jié)合文檔和注釋,我們能夠更清晰地傳達(dá)測(cè)試的目的和預(yù)期,使得測(cè)試用例更易于維護(hù)和理解。

合理利用Pytest提供的斷言方式是提高測(cè)試質(zhì)量和效率的關(guān)鍵。通過深入了解不同的斷言方式,并在實(shí)踐中靈活應(yīng)用,我們能夠編寫出更具表達(dá)力和可維護(hù)性的測(cè)試用例,從而提高代碼的質(zhì)量和穩(wěn)定性。在日常的開發(fā)工作中,不斷學(xué)習(xí)和掌握斷言的藝術(shù),將為我們打造高效而可靠的測(cè)試奠定堅(jiān)實(shí)基礎(chǔ)。

最后感謝每一個(gè)認(rèn)真閱讀我文章的人,看著粉絲一路的上漲和關(guān)注,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走!?

精進(jìn)單元測(cè)試技能 —— Pytest斷言的藝術(shù)!,技術(shù)分享,自動(dòng)化測(cè)試,軟件測(cè)試,單元測(cè)試,pytest,壓力測(cè)試,測(cè)試工程師,自動(dòng)化測(cè)試,性能測(cè)試,軟件測(cè)試

軟件測(cè)試面試文檔

我們學(xué)習(xí)必然是為了找到高薪的工作,下面這些面試題是來自阿里、騰訊、字節(jié)等一線互聯(lián)網(wǎng)大廠最新的面試資料,并且有字節(jié)大佬給出了權(quán)威的解答,刷完這一套面試資料相信大家都能找到滿意的工作。

精進(jìn)單元測(cè)試技能 —— Pytest斷言的藝術(shù)!,技術(shù)分享,自動(dòng)化測(cè)試,軟件測(cè)試,單元測(cè)試,pytest,壓力測(cè)試,測(cè)試工程師,自動(dòng)化測(cè)試,性能測(cè)試,軟件測(cè)試

精進(jìn)單元測(cè)試技能 —— Pytest斷言的藝術(shù)!,技術(shù)分享,自動(dòng)化測(cè)試,軟件測(cè)試,單元測(cè)試,pytest,壓力測(cè)試,測(cè)試工程師,自動(dòng)化測(cè)試,性能測(cè)試,軟件測(cè)試

精進(jìn)單元測(cè)試技能 —— Pytest斷言的藝術(shù)!,技術(shù)分享,自動(dòng)化測(cè)試,軟件測(cè)試,單元測(cè)試,pytest,壓力測(cè)試,測(cè)試工程師,自動(dòng)化測(cè)試,性能測(cè)試,軟件測(cè)試文章來源地址http://www.zghlxwxcb.cn/news/detail-775891.html

到了這里,關(guān)于精進(jìn)單元測(cè)試技能 —— Pytest斷言的藝術(shù)!的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • SpringBoot單元測(cè)試斷言 assertions

    SpringBoot單元測(cè)試斷言 assertions

    斷言(assertions)是測(cè)試方法中的核心部分,用來對(duì)測(cè)試需要滿足的條件進(jìn)行驗(yàn)證。這些斷言方法都是 org.junit.jupiter.api.Assertions 的靜態(tài)方法。JUnit 5 內(nèi)置的斷言可以分成如下幾個(gè)類別: 1、簡(jiǎn)單斷言 2、數(shù)組斷言 通過 assertArrayEquals 方法來判斷兩個(gè)對(duì)象或原始類型的數(shù)組是否相等

    2024年02月05日
    瀏覽(31)
  • JUnit 5單元測(cè)試(二)—— 斷言

    JUnit 5單元測(cè)試(二)—— 斷言

    上一篇講了 JUnit 5單元測(cè)試(一)—— 基本配置,書接上文開始 JUnit 5單元測(cè)試(二)—— 斷言 1.單元測(cè)試的類名應(yīng)該起為 xxxxTest.java 表明這個(gè)一個(gè)測(cè)試類,類名應(yīng)該用簡(jiǎn)潔的英文表明測(cè)試內(nèi)容或函數(shù)。 例如:為了測(cè)試一個(gè)計(jì)算和的方法,可以取名為 SumTest.java 2.測(cè)試方法上

    2024年01月16日
    瀏覽(17)
  • [Python] 斷言assert與單元測(cè)試

    在Python中,斷言(assertion)是一種用于檢查程序中的條件是否為真的工具。它用于在程序的特定點(diǎn)處驗(yàn)證一些假設(shè),并在條件為假時(shí)觸發(fā)異常如果斷言為真,則程序繼續(xù)執(zhí)行;如果斷言為假,則引發(fā)AssertionError異常。 assert語句的語法如下: 其中,condition是一個(gè)布爾表達(dá)式,如

    2024年02月02日
    瀏覽(22)
  • Unitest單元測(cè)試,常用斷言方法Assertion

    unittest庫(kù)提供了很多實(shí)用方法來檢測(cè)程序運(yùn)行的結(jié)果和預(yù)期。包括三種類型的方法,每一種都覆蓋了典型的類型,比如: 檢查相等值、邏輯比較、異常 如果給定的Assertion通過了,那么測(cè)試會(huì)執(zhí)行下一行代碼。如果給定的assertion沒有通過,測(cè)試會(huì)暫停并且生成錯(cuò)誤信息。unitt

    2024年02月05日
    瀏覽(22)
  • 白盒測(cè)試(單元測(cè)試使用assertThat中equalTo斷言)

    白盒測(cè)試(單元測(cè)試使用assertThat中equalTo斷言)

    題目1 :根據(jù)下列流程圖編寫程序?qū)崿F(xiàn)相應(yīng)分析處理并顯示結(jié)果。返回結(jié)果“a=x:”(x為2、3或4);其中變量x、y均須為整型。編寫程序代碼,使用JUnit框架編寫測(cè)試類對(duì)編寫的程序代碼進(jìn)行測(cè)試,測(cè)試類中設(shè)計(jì)最少的測(cè)試數(shù)據(jù)滿足語句覆蓋測(cè)試,每條測(cè)試數(shù)據(jù)需要在測(cè)試類中

    2024年02月13日
    瀏覽(30)
  • pytest筆記: pytest單元測(cè)試框架

    pytest筆記: pytest單元測(cè)試框架

    pycharm settings 查看? test_sample.py? 后面帶了個(gè)“.” 表示通過 如果不符合預(yù)期顯示結(jié)果如下 D:softwarepython3anconda3Scripts 重啟pycharm 后輸入pytest

    2024年02月10日
    瀏覽(21)
  • C++中的斷言機(jī)制與gtest單元測(cè)試

    C++中的斷言機(jī)制與gtest單元測(cè)試

    ?? 這部分內(nèi)容網(wǎng)上已經(jīng)有很多人講了,我就不做重復(fù)性工作,制造垃圾了,大家看看下面兩個(gè)鏈接就可以了,因?yàn)槲业膶诔朔窒碜约簩W(xué)習(xí)的知識(shí),主要想為大家提供完整學(xué)習(xí)路線,讓大家的知識(shí)體系更加完善! (1)參考:https://www.cnblogs.com/lvchaoshun/p/7816288.html (1)參考:

    2023年04月08日
    瀏覽(32)
  • 【單元測(cè)試】Junit 4(三)--Junit4斷言

    ? **斷言(assertion)**是一種在程序中的一階邏輯(如:一個(gè)結(jié)果為真或假的邏輯判斷式),目的為了表示與驗(yàn)證軟件開發(fā)者預(yù)期的結(jié)果——當(dāng)程序執(zhí)行到斷言的位置時(shí),對(duì)應(yīng)的斷言應(yīng)該為真。若斷言不為真時(shí),程序會(huì)中止執(zhí)行,并給出錯(cuò)誤信息。 這里我們直接上例子 接下來我們

    2024年02月08日
    瀏覽(19)
  • pytest單元測(cè)試實(shí)戰(zhàn)

    pytest單元測(cè)試實(shí)戰(zhàn)

    1、pytest 簡(jiǎn)介 pytest 是 python 的一種單元測(cè)試框架,與 python 自帶的 unittest 測(cè)試框架類似,但是比 unittest 框架使用起來更簡(jiǎn)潔,效率更高。 根據(jù) pytest 的官方網(wǎng)站介紹,它具有如下特點(diǎn): 非常容易上手,入門簡(jiǎn)單,文檔豐富,文檔中有很多實(shí)例可以參考。 能夠支持簡(jiǎn)單的單元

    2024年01月16日
    瀏覽(21)
  • 白盒測(cè)試(單元測(cè)試JUnit使用斷言assertThat中startsWith、endsWith方法)

    目錄 一、背景知識(shí) 二、assertThat-字符串相關(guān)匹配符 1、startsWith 2、endsWith 三、代碼

    2024年02月07日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包