我使用spock-genesis,并希望使用值列表将无限列表生成器参数化。生成的项应该是最多包含随机顺序的参数化值列表的列表。
一些不变量包括:
def 'list generator'() {
expect:
xs.size() <= 3
xs.findAll({x -> x == 1}).size() <= 1
xs.findAll({x -> x == 2}).size() <= 1
xs.findAll({x -> x == 3}).size() <= 1
where:
xs << listGen([1, 2, 3])
}
我即将编写自己的Generator实现,但有可能我想得太多了,有可能用已有的Spock-Gensis单元组成这样的生成器。
3条答案
按热度按时间z4iuyo4d1#
尝尝这个
listGen([1, 2, 3])
的结果将是:您的测试通过了此实现。
**更新:**根据下面评论中的OP说明,他们预计排列是随机的,因此以下代码行将使用Spock-gensis Any实现这一点:
ndasle7k2#
我不太确定你想要什么,只是列表
[1,2,3]
的每一个可能的排列的列表?如果是这样的话,这应该就足够了。5anewei63#
在@Dmitry Khamitov的帮助下,我想出了Spock-Genesis生成器
以下是一些测试: