Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Testing thread concurrency with Spock

Is there a spock equivalent of TestNG's @Test(threadPoolSize=n) that will allow me test the execution of a test, with multiple threads concurrently?

Basically, given a specification like so...

class SampleSpec extends Specification {
    def "test concurrent access"(){
        setup:
        //do complex logic
        expect:
        //assert complex logic
    }

}

What I want is a way to do this in spock, but with multiple threads spawned concurrently to execute the test method. In TestNG, I could easily achieve this by doing

@Test(threadPoolSize=10)
public void testMethod(){
    //do complex logic and assertion

}

Thanks in advance.

like image 376
GroovyBee Avatar asked Nov 01 '11 09:11

GroovyBee


1 Answers

Spock doesn't support this out of the box. It wouldn't be so hard to write a Spock extension for it though. For inspiration, have a look at class org.spockframework.runtime.extension.builtin.TimeoutExtension.

like image 184
Peter Niederwieser Avatar answered Oct 23 '22 10:10

Peter Niederwieser