Python Hypothesis
Contents
当我们有了py.test这的单元测试框架后,fixture已经让写单元测试已经变得很容易了。 但是我们仍然要对多个输入进行各种组合,有没有一个库,可以通过指定每个输入的范围,自动产生多个输入的各种组合, 并自动测试边界条件呢?答案就是 hypothesis ,示例代码如下
from hypothesis import given
from hypothesis import strategies as st
@given(
region=st.sampled_from(list("XYKDRSGF")),
offset=st.integers(min_value=0, max_value=19),
bit=st.integers(min_value=0, max_value=7),
)
def test_bit(region, offset, bit):
# use region, offset and bit as input to test
...
从以上代码可以看出,我们只是给了region,offset和bit的范围,并没有取各种边界值组合, hypothesis自动处理了这些!!据说rust也有类似的库 proptest,下次也试试。