Search code examples
unit-testinggroovyspock

Passing a value in a where: block in Spock test


Is it possible to pass a value in where block like this.

I have tried this. But it fails and gives MissingPropertyException.

And I want the name1 and name2 to be inside the method.

def "length of names #name"()  {    
        def name1 = "Spock"
        def name2 = "Java"

        expect:
            name.size() == length

        where:
            name        || length
            name1       || 5
            name2       || 2
    }

Solution

  • Try this:

    def "test length of names"()  {
        expect:
            name.size() == length   
        where:
        [name,length]<<getTestData()
    
    }
    
    def getTestData(){
            [["Ram"  ,3 ] ,["Test" ,4] ]
        }
    

    Hope that helps!!!

    Thanks