今天這篇技術(shù)文章要分享的是pytest框架當(dāng)中的斷言。會從以下幾個方面來分享:
從上面也可以看出來,unittest框架的斷言的確是比pytest框架要復(fù)雜很多。
四、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、想知道斷言失敗時的一些關(guān)于失敗的原因等說明信息,assert也能滿足該功能。
assert 斷言的內(nèi)容,”斷言的說明”
2、一些測試用例中,比如異常測試用例,測試的結(jié)果必然是失敗會報出異常的。這時候用例的期望結(jié)果就是該異常。
對于異常的斷言,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=="九","變量的名字,和最終預(yù)期的名字不一致,所以失敗"
# 定義一個測試用例,驗證異常信息斷言
def test_zero_division(self):
# 斷言異常
with pytest.raises(ZeroDivisionError) as exc:
1/0
# 判斷異常的類型是否和預(yù)期一致
assert exc.type==ZeroDivisionError
# 斷言異常的value值和預(yù)期是否一致
assert "division by sss" in str(exc.value)
更多關(guān)于軟件測試培訓(xùn)的問題,歡迎咨詢千鋒教育在線名師。千鋒教育擁有多年IT培訓(xùn)服務(wù)經(jīng)驗,采用全程面授高品質(zhì)、高體驗培養(yǎng)模式,擁有國內(nèi)一體化教學(xué)管理及學(xué)員服務(wù),助力更多學(xué)員實現(xiàn)高薪夢想。