pytest篇3-断言详解

前言

  • 1、上一篇pytest篇博客我们介绍了pytest的运行和用例的运行规则,今天准备分享一下pytest的断言。
  • 2、断言是用例中必不可少的一步骤,不然就缺失了自动化的意义。

1、pytest断言

在unitest单元测试框架中提供了丰富的断言方法,如assertEqual()、assertIn()、assertTrue()、assertIs()等。unittest断言详解可见我另外博客(链接)。pytest单元测试框架并没有提供专门的断言方法,而是直接使用Python的assert进行断言。

方法描述
assert a==ba、b是否相等
assert a!=ba、b是否不相等
assert a<=ba是否小于等于b
assert a>=ba是否大于等于b
assert a in bb是否包含a
assert a not in bb是否不包含a
assert a判断a是否为True
assert a is True判断a是否为True
assert not a判断a是否不为True
assert a is not True判断是否不为True
assert a is Flase判断是否为Flase

2、实例

# time :2021/2/7 15:18
# Author :Maynard


# 1、a是否等于b
def test_assert_01():
    a = 1
    b = 2
    assert a == b

# 2、a是否不等于b
def test_assert_02():
    a = 1
    b = 2
    assert a != b

# 3、a是否小于等于b
def test_assert_03():
    a = 1
    b = 2
    assert a <= b

# 4、a是否大于等于b
def test_assert_04():
    a = 1
    b = 2
    assert a >= b
# 5、b 是否包含a
def test_assert_05():
    a = 1
    b = (1,2)
    assert a in b

# 6、b是否不包含a
def test_assert_06():
    a = 1
    b = (1,2)
    assert a not in b

# 7、判断a是否为True
def test_assert_07():
    a = 1
    assert a

# 8、判断a是否为True
def test_assert_08():
    a = 1
    assert a is True

# 9、判断a是否不为True
def test_assert_09():
    a = 1
    assert not a

# 10、判断a是否不为True
def test_assert_10():
    a = 1
    assert a is not True

# 11、判断是否为Flase
def test_assert_11():
    a =1
    assert a is False

3、结果

运行命令

pytest test_04assert.py

在这里插入图片描述
总共11条case,六条不通过,五条通过

4、加断言注释

可以在assert断言后面,加一个说明注释。报错是会同样打印出来

def test_assert_01():
    a = 1
    b = 2
    assert a == b ,'a是否等于b'

5、总结

  • 1、pytest断言使用的是python自带的断言库;
  • 2、pytest断言借助python的运算符号和关键字即可轻松实现不同数据类型的断言;
  • 3、unittest断言和pytest的断言不能混用。unittest的断言只能适用于框架本身之内;

ps :

1、后续内容继续深入pytest的学习;
2、有什么问题,欢迎大家评论区评论交流!谢谢大家!
3、如果觉得博主这篇博客对大家有用,麻烦评论区留下自己的‘脚印’ !

pytest是一个非常流行的Python测试框架,它提供了一个强大的断言系统。在pytest中,你可以使用内置的`assert`语句来完成断言操作,它会抛出一个AssertionError异常,当测试失败时。除此之外,pytest还提供了一些专门的断言函数,这些函数可以在断言失败时提供更多的信息。 pytest中常用的断言函数包括: - `assert`语句:最基本的断言方式。 - `assert not`:用来断言表达式为False。 - `assertEqual`:断言两个对象是否相等,等同于`assert a == b`。 - `assertNotEqual`:断言两个对象是否不相等,等同于`assert a != b`。 - `assertTrue`:断言表达式结果为True。 - `assertFalse`:断言表达式结果为False。 - `assertIs`:断言两个对象引用的是同一个对象。 - `assertIsNot`:断言两个对象引用的不是同一个对象。 - `assertIsNone`:断言对象是否为None。 - `assertIsNotNone`:断言对象是否不为None。 - `assertIn`:断言一个对象是否在另一个对象中。 - `assertNotIn`:断言一个对象是否不在另一个对象中。 - `assertIsInstance`:断言一个对象是否是一个类的实例。 - `assertNotIsInstance`:断言一个对象是否不是一个类的实例。 使用pytest断言时,当测试失败,pytest会打印出详细的失败信息,包括期望值和实际值,这有助于调试程序。 一个简单的pytest断言语句示例: ```python def test_example(): assert 1 == 1 ``` 如果`assert 1 == 1`这条语句为False,测试会失败,并显示相关的错误信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值