是否可以使用数据表分配给@Shared变量?

时间:2018-02-01 21:08:22

标签: spock

我正在处理一系列非常冗余的测试,它们为继承的@Shared变量赋值,以便在连续的测试类中使用,如下所示:

def "test1"() {
    when:
        sharedVar1 = doSomething(10, 20)
    then:
        sharedVar1 > 0
}

def "test2"() {
    when:
        sharedVar2 = doSomething(3, 7)
    then:
        sharedVar2 > 0
}

...

连续可能有八个以上,所有这些都完全相同,只是使用不同的变量。

我尝试使用@Unroll和数据表来简化这一过程,如下所示:

@Unroll
def "test #n"() {
    when:
        localVar = doSomething(a, b)
    then:
        localVar > 0
    where:
        localVar   | a  | b  | n
        sharedVar1 | 10 | 20 | 1
        sharedVar2 | 3  | 7  | 2
        ...
}

但我遇到了明显的问题,即when:块中的赋值将值赋给 local 变量localVar并且不是我要将值赋给的共享变量。

有没有简单的方法可以使用数据表/数据管道样式编写这些允许我分配给共享变量的测试,或者我基本上只限于在时使用这种测试方式不需要为共享变量赋值吗?

0 个答案:

没有答案