2 回答

TA貢獻1876條經(jīng)驗 獲得超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條經(jīng)驗 獲得超6個贊
由于您最多需要 20 個項目,因此生成一個從 1 到 20 的隨機數(shù):
import random
size = random.randint(1,20)
然后使用該數(shù)字從源列表中進行 N 次獨立選擇:
texts = ['t1', 't2', 't3', 't4']
random_texts = []
for _ in range(size):
random_texts.append(random.choice(texts))
添加回答
舉報