【发布时间】:2018-01-12 16:57:19
【问题描述】:
在我的项目中,我使用Hypothesis 来测试一个功能。
被测函数接受一个名为stop 的强制参数和两个分别名为start 和step 的可选参数。
如果参数step为零,则被测代码应触发异常。
这是我的测试函数
@given(start=st.integers(min_value=-1000, max_value=1000),
stop=st.integers(min_value=-1000, max_value=1000),
step=st.integers(min_value=-1000, max_value=1000))
@settings(settings(verbosity=Verbosity.verbose))
def test_XXX_for_integer(start, stop, step):
if step == 0:
with raises(ValueError) as excinfo:
_ = myrange3(start, stop, step)
assert 'arg 3 must not be zero' in str(excinfo.value)
else:
output = <some code>
expected = <some output>
assert output == expected
我的问题:我还想模拟start 和step 是可选的,因此这些参数中的一个或两个都设置为None。如果不为每个代码变体重新创建专用测试函数,我该如何做到这一点?
【问题讨论】:
标签: python python-3.x python-hypothesis