Spock数据表的标头在另一个功能方法中包含名为变量的变量时发生意外行为

时间:2019-10-21 15:45:53

标签: groovy spock

我在Spock中的数据驱动测试有问题。 当数据表头包含另一个功能方法中的变量(在本例中为“ b”)命名为变量时,将引发以下异常:

org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object '3' with class 'java.lang.Integer' to class 'java.util.UUID'

示例规范类:


class ExampleSpec extends Specification {

    def 'example feature with variable named like datatable header'() {
        given:
        UUID b = UUID.randomUUID()

        when:
        def length = b.toString().length()

        then:
        length == 36
    }

    def "maximum of two numbers"() {
        expect:
        Math.max(a, b) == c

        where:
        a | b | c
        1 | 3 | 3
        0 | 0 | 0
    }
}

有人知道原因是数据表的标头变量以这种意外方式干扰了先前功能方法中定义的变量吗?

仅在版本'1.x-groovy-2.5'中出现此问题。

0 个答案:

没有答案