如何在Spock规范的'where:'块中指定Range而不是List

时间:2014-01-17 00:44:33

标签: groovy spock

以下示例代码:

class MySpec extends spock.lang.Specification {
    def "My test"(int b) {
        given:
        def a = 1

        expect:
        b > a

        where:
        b << 2..4
    }
}

抛出以下编译错误:“where-blocks只能包含参数化(例如'salary&lt;&lt; [1000,5000,9000]; salaryk = salary / 1000')”

但使用List而不是Range:

        where:
        b << [2,3,4]

按预期编译并运行正常。

我还能以某种方式指定范围吗?

1 个答案:

答案 0 :(得分:9)

使用

where:
    b << (2..4)

测试也可以如下优化。注意测试没有参数。

def "My test"() {
    expect:
        b > a

    where:
        a = 1
        b << (2..4)
}