在Spock测试中创建输入组合

时间:2013-09-24 16:06:45

标签: unit-testing groovy spock

在我的Spock测试中,这是我当前的块

where:
        [A,B,C] << 
        [
            ["A1","B1","C1"],
            ["A1","B1","C2"],
        ]

我正在尝试简化这一点,因为我对A和B的输入总是相同的。我试图使用组合(),但一直没有成功。

我想要这样的东西与上面的代码完成相同的工作。

where:
        [[A,B],[C]] <<                 // incorrect
        [
            [["A1","B1"],["C1","C2"]].combinations()  // incorrect
        ]   

目前我获得NPE

2 个答案:

答案 0 :(得分:5)

这是一个解决方案:

where:
[A, B, C] << [[["A1","B1"]],["C1","C2"]].combinations()*.flatten()

答案 1 :(得分:0)

你需要这样的东西:

where:
    [A, B, C] << [
        ['a1', 'a2', 'a3'],
        ['b1', 'b3'],
        ['c1']
    ].combinations()

您没有足够的阵列来匹配目标,或者您试图将目标错误地分组到子阵列中。