Pytest的断言比unittest的断言更简单实用

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.软件测试学习路线以及相对应的视频学习教程免费分享!

猜你喜欢

转载自blog.csdn.net/qq_42434318/article/details/113047452