如何使用 hypothesis-extra-pytest 在 Python 中进行 pytest 的属性测试

2023-04-13 00:00:00 如何使用 hypothesis

步骤如下:

  1. 引入 hypothesis 和 pytest,并安装额外的 hypothesis-extra-pytest 模块。
import pytest
from hypothesis import given
from hypothesis.strategies import text
import hypothesis.extra.pytest.parameterized as hp
  1. 使用 @given 装饰器来标记一个属性测试函数,并使用各类 hypothesis 编写的 strategies 来生成输入参数。
@given(text())
def test_string_length(s):
    assert len(s) >= 0
  1. 如果需要使用 @pytest.mark.parametrize 和 hypothesis-extra-pytest 做参数化测试,需要同时使用 @hp.given 来标记一个属性测试函数,把 strategies 作为参数传入。
@hp.given(s=text())
@pytest.mark.parametrize("expected", ["pidancode.com", "皮蛋编程"])
def test_starts_with(expected, s):
    assert s.startswith(expected)

完整代码示例如下:

import pytest
from hypothesis import given
from hypothesis.strategies import text
import hypothesis.extra.pytest.parameterized as hp

@given(text())
def test_string_length(s):
    assert len(s) >= 0

@hp.given(s=text())
@pytest.mark.parametrize("expected", ["pidancode.com", "皮蛋编程"])
def test_starts_with(expected, s):
    assert s.startswith(expected)

相关文章