Неожиданное поведение, когда заголовок Spock datatable содержит переменную с именем like в другом методе объекта - PullRequest
2 голосов
/ 21 октября 2019

У меня проблема с управляемыми данными тестами в Споке. Если заголовок с данными содержит переменную (в данном случае '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
    }
}

Кто-нибудь знает, в чем причина того, что переменная заголовка datatable таким неожиданным образом сталкивается с переменной, определенной в предыдущем методе объектов?

Проблема возникает только в версии: 1.x-groovy-2.5.

...