2 回答
TA贡献1876条经验 获得超7个赞
lists
您正在寻找和策略的组合sampled_from
:
from hypothesis import strategies as st
texts = ['t1', 't2', 't3', 't4']
lists_from_texts = st.lists(st.sampled_from(texts), max_size=20)
...
@given(lists_from_texts)
def test_x(some_text):
...
或者如果您希望能够更改不同测试的源列表:
from typing import List
def lists_from_texts(source: List[str]) -> st.SearchStrategy[List[str]]:
return st.lists(st.sampled_from(source), max_size=20)
...
@given(lists_from_texts(texts))
def test_x(some_text):
...
TA贡献1998条经验 获得超6个赞
由于您最多需要 20 个项目,因此生成一个从 1 到 20 的随机数:
import random
size = random.randint(1,20)
然后使用该数字从源列表中进行 N 次独立选择:
texts = ['t1', 't2', 't3', 't4']
random_texts = []
for _ in range(size):
random_texts.append(random.choice(texts))
添加回答
举报