【pytest】(五) pytest中的断言

简介: 【pytest】(五) pytest中的断言

一、pytest 支持Python自带的标准断言


def f():
    return 3
def test_function():
    assert f() == 4


1268169-20180910132927919-448357776.png


pytest 的断言报告,也很丰富,和详情,比如:


import pytest
def test_set_comparison():
  set1 = set("1308")
  set2 = set("8035")
  assert set1 == set2


运行一下:


1268169-20180910214011288-1439762270.png


二、对于一些异常的断言


有时候,我们需要对一些异常抛出作断言,可以用pytest.raises

比如:测试除法运算,0不可以被除,这里就可以写一个异常的断言,ZeroDivisionError


import pytest
def test_zero_division():
    with pytest.raises(ZeroDivisionError):
        1 / 0


运行测试


1268169-20180910134259292-1454407394.png


不做异常断言,运行测试,就会抛错,ZeroDivisionError


1268169-20180910134509888-314501906.png


有的时候,我们可能需要在测试中用到产生的异常中的某些信息,比如异常的类型type,异常的值value等等


比如


import pytest
def test_recursion_depth():
  with pytest.raises(RuntimeError) as excinfo:
    def f():
      f()
    f()
  assert 'maximum recursion' in str(excinfo.value)


相关文章
|
测试技术 Python
Pytest断言
Pytest断言
56 0
|
测试技术 Python
Pytest简单介绍
Pytest简单介绍
79 0
|
测试技术
unittest--断言
unittest--断言
|
测试技术 Python
pytest--fixture
pytest--fixture
|
Web App开发 测试技术
10-pytest-parametrize中使用fixture
10-pytest-parametrize中使用fixture
|
负载均衡 监控 测试技术
pytest学习和使用20-pytest如何进行分布式测试?(pytest-xdist)
pytest学习和使用20-pytest如何进行分布式测试?(pytest-xdist)
193 0
pytest学习和使用20-pytest如何进行分布式测试?(pytest-xdist)
|
测试技术
pytest学习和使用5-Pytest和Unittest中的断言如何使用?
pytest学习和使用5-Pytest和Unittest中的断言如何使用?
93 0
pytest学习和使用5-Pytest和Unittest中的断言如何使用?
pytest学习和使用19-pytest断言失败后,怎样保持后续的断言继续执行?(pytest-assume)
pytest学习和使用19-pytest断言失败后,怎样保持后续的断言继续执行?(pytest-assume)
128 0
|
测试技术
pytest学习和使用12-Unittest和Pytest参数化详解
pytest学习和使用12-Unittest和Pytest参数化详解
85 0