RSM RSM - 2 months ago 13
Groovy Question

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
}

Answer Source

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