2 回答

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超7個(gè)贊
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):
? ? ...
或者如果您希望能夠更改不同測(cè)試的源列表:
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貢獻(xiàn)1998條經(jīng)驗(yàn) 獲得超6個(gè)贊
由于您最多需要 20 個(gè)項(xiàng)目,因此生成一個(gè)從 1 到 20 的隨機(jī)數(shù):
import random
size = random.randint(1,20)
然后使用該數(shù)字從源列表中進(jìn)行 N 次獨(dú)立選擇:
texts = ['t1', 't2', 't3', 't4']
random_texts = []
for _ in range(size):
random_texts.append(random.choice(texts))
添加回答
舉報(bào)