使用Spock测试线程并发性

Gro*_*Bee 9 groovy testng multithreading spock

是否有一个spock相当于TestNG的@Test(threadPoolSize = n),它允许我测试多个线程同时执行的测试?

基本上,给出这样的规范......

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

}
Run Code Online (Sandbox Code Playgroud)

我想要的是在spock中执行此操作的方法,但同时生成多个线程以执行测试方法.在TestNG中,我可以轻松实现这一目标

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

}
Run Code Online (Sandbox Code Playgroud)

提前致谢.

Pet*_*ser 1

Spock 不支持开箱即用。不过,为其编写一个 Spock 扩展并不难。要获得灵感,请查看 class org.spockframework.runtime.extension.builtin.TimeoutExtension

  • 如果不是那么难,任何人或者 Spock 作者都可以提供一个可行的例子吗? (3认同)