我有以下参数用于相同的测试:
a | b | c 1 | 2 | 3 11 | 22 | 33
Spock为类似的测试提供了@Unroll注解(使用这组参数,您可以使用向量[1,2,3]和[11,22,33]运行相同的测试)。然而,我需要对所有可能的排列(例如[1,2,3],[1,2,33],[11,2,33]等,所有8种组合)运行相同的测试。我怎么才能做到呢?谢谢你的任何想法!
@Unroll
t98cgbkg1#
你需要
where: [a, b, c] << [[1, 11], [2, 12], [3, 13]].combinations()
bttbmeg02#
以下是对cellepo评论的回应:通过提取c数据管道,可以具有与置换相关联的期望。
c
def "data driven cross-product"() { expect: Math.max(a, b) == c where: [a, b] << [[1, 11], [2, 12]].combinations() c << [2, 11, 12, 12] }
combinations总是以相同的顺序返回排列:
combinations
[['a', 'b'],[1, 2, 3]].combinations() == [['a', 1], ['b', 1], ['a', 2], ['b', 2], ['a', 3], ['b', 3]]
但是如果它是许多变量的组合,就很难写了。
2条答案
按热度按时间t98cgbkg1#
你需要
bttbmeg02#
以下是对cellepo评论的回应:通过提取
c
数据管道,可以具有与置换相关联的期望。combinations
总是以相同的顺序返回排列:但是如果它是许多变量的组合,就很难写了。