如何使用 hypothesis-extra-pytest 在 Python 中进行 pytest 的属性测试
步骤如下:
- 引入 hypothesis 和 pytest,并安装额外的 hypothesis-extra-pytest 模块。
import pytest from hypothesis import given from hypothesis.strategies import text import hypothesis.extra.pytest.parameterized as hp
- 使用 @given 装饰器来标记一个属性测试函数,并使用各类 hypothesis 编写的 strategies 来生成输入参数。
@given(text()) def test_string_length(s): assert len(s) >= 0
- 如果需要使用 @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)
相关文章