我开始使用假设来编写测试。我喜欢它,但我坚持生成某种数据。
我有一个使用数据列表的测试,可以从元组(键,值)构造。
键可以是文本、整数或浮点数,值可以是任何可比较的值。对于一个测试,所有键必须是同一类型,所有值必须是同一类型。
我发现生成我想要的数据的唯一方法是这样的:
@given(
st.one_of(
st.lists(st.tuples(st.integers(), st.integers())),
st.lists(st.tuples(st.integers(), st.floats())),
st.lists(st.tuples(st.integers(), st.text())),
st.lists(st.tuples(st.floats(), st.integers())),
st.lists(st.tuples(st.floats(), st.floats())),
st.lists(st.tuples(st.floats(), st.text())),
#...
))
def test_stuff(lst):
data = [Mydata(k, v) for k, v in lst]
#...
有没有更好的方法来生成我想要测试的所有数据类型组合?