python断言asserttest实例_python-pytest学习(八)-assert断言

本文详细介绍了Python中的断言assert及其在pytest框架中的应用,包括基本用法、异常信息处理、异常断言以及常用断言方式的示例,帮助读者深入理解如何在测试中有效使用assert进行结果验证。
摘要由CSDN通过智能技术生成

一、前言

断言是自动化测试基本最重要的一步,一个用例没有断言,就等于失去自动化测试的意义了。什么是断言呢?

简单来讲就是实际结果和期望结果去对比,符合预期就测试pass,不符合预期结果就测试failed

二、assert

pytest允许您使用标准python断言来验证python测试中的期望和值。例如

deff():return 3

deftest_function():assert f()==4

运行结果:

从报错信息可以看到断言失败原因:E assert 3 == 4

三、异常信息

接下来再看一个案例,如果想在异常的时候,输出一些提示信息,这样报错后就知道什么原因了

deff():return 3

deftest_function():

a=f()assert a%2==0,"判断a为偶数,当前a的值为:%s"%a

运行结果:

这样当断言失败的时候,会给出自己写的失败原因了

E AssertionError: 判断a为偶数,当前a的值为:3

四、异常断言

为了写关于引发异常的断言,可以使用pytest.raises作为上下文管理器,如下

importpytestdeftest_zero_division():

with pytest.raises(ZeroDivisionError):1/0

运行结果:

如果我们要断言它抛的异常是不是预期的,比如执行:1/0,预期结果是抛异常:ZeroDivisionError:dision by zero,那我们要断言这个异常,通常是断言异常的type和value值了。

这里1/0的异常类型是ZeroDivisionError,异常的value值是division by zero,于是用例可以这样设计。

importpytestdeftest_zero_division():"""断言异常"""with pytest.raises(ZeroDivisionError) as excinfo:1/0#断言异常类型type

assert excinfo.type ==ZeroDivisionError#断言异常value值

assert "division by zero" in str(excinfo.value)

excinfo是一个异常信息实例,它是围绕实际引发的异常的包装器。主要属性是.type、.value和.traceback

五、常用断言

pytest里面断言实际上就是python里面的assert断言方法,常用的有以下几种

1.assert xx判断xx为真

2.assert not xx判断xx不为真

3.assert a in b 判断b包含a

4.assert a == b 判断a等于b

5.assert a != b 判断a不等于b

importpytestdefis_true(a):if a>0:returnTrueelse:returnFalsedeftest_01():"""断言xx为真"""a= 5b= -1

assertis_true(a)assert not is_true(b) #一个用例可以支持多个断言

deftest_02():"""断言b包含a"""a= "hello"b= "hello world"

assert a inbdeftest_03():"""断言相等"""a= "bibi"b= "bibi"

assert a ==bdeftest_04():"""断言不等于"""a= 5b= 6

assert a !=bif __name__ == "__main__":

pytest.main(["-s","test_assert4.py"])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值