我有一个这样的函数(它实际上是一个类,但考虑到 Python 的鸭子类型,这无关紧要):
def myfunc(a=None, b=None):
<snip>
现在我想编写一个始终提供a
但仅有时提供的假设测试b
。
我试过了
from hypothesis import given, strategies as strat
@given(a=strat.booleans())
@given(b=strat.integers(min_value=1) | strat.nothing())
def test_model_properties(self, **kwargs):
myval = myfunc(**kwargs)
<snip>
但似乎它strat.nothing()
只是跳过了该测试运行(hypothesis.errors.FailedHealthCheck: It looks like your strategy is filtering out a lot of data.
当我使用它作为唯一策略时b
)。
我怎样才能有时只提供一个带有假设检验的论点?我是否需要编写两个测试,一个有b
一个没有?