1. 程式人生 > 其它 >Pytest的斷言比unittest的斷言更簡單實用

Pytest的斷言比unittest的斷言更簡單實用

技術標籤:軟體測試Pytest斷言軟體測試測試工程師單元測試

Pytest斷言

斷言是寫自動化測試基本最重要的一步,一個用例沒有斷言,就失去了自動化測試的意義了
斷言就是用實際結果和期望結果去對比,符合預期那就測試pass,不符合預期那就測試 failed

# -*- coding: utf-8 -*-
# @Author : 公眾號:程式設計師一凡
 
import pytest
 
def test01():
    b = 2
    assert 1 == b, "預期的值是:%d"%b
 
def test02():
    assert 2 == 2
 
pytest.main(["day.py"])

執行結果

用例通過1條,失敗1條
斷言失敗會寫出自己失敗的原因

 def test01():
        b = 2
>       assert 1 == b, "預期的值是:%d"%b
E       AssertionError: 預期的值是:2
E       assert 1 == 2

異常斷言

# -*- coding: utf-8 -*-
# @Author : 公眾號:程式設計師一凡
 
import pytest
 
def a():
    with pytest.raises(ZeroDivisionError) as ZE:
        1 / 0
 
    # 斷言異常型別type
    assert ZE.type == ZeroDivisionError
    # 斷言異常value
    assert "division by zero" in str(ZE.value)
 
pytest.main(["day.py"])

ZE 是一個異常資訊例項,它是圍繞實際引發的異常的包裝器。
主要屬性是.type、 .value .traceback
斷言 type 的時候,異常型別是不需要加引號的,斷言 value值的時候需轉 str
在上下文管理器窗體中,可以使用關鍵字引數訊息指定自定義失敗
給大家推薦一個軟體測試技術交流群:1079636098 群友福利免費領取

願你我相遇,皆有所獲! 歡迎關注微信公眾號:程式設計師一凡

1.免費領取一份216頁軟體測試工程師面試寶典文件資料。

2.軟體測試學習路線以及相對應的視訊學習教程免費分享!