Groovy Spock与java测试类

时间:2016-03-25 09:32:08

标签: java groovy spock

我是Spock框架的新手,我在使用抽象的java测试类时遇到了问题。

我想要的是一个groovy测试类,它使用一些常用方法扩展了一些其他java抽象类,这些方法又扩展了Specification类。

所以,代码如下:

class GroovyTest extends AbstractTest {
    def "my test"() {
        ....
    }
}

public abstract class AbstractTest extends Specification {
    ...
    some common methods
    ...
}

当我运行GroovyTest类时,我收到以下错误:

  

org.spockframework.runtime.InvalidSpecException:Specification' org.my.package.AbstractTest'没有正确编译(Spock AST转换未运行);尝试做一个干净的构建

当我使用groovy抽象类时,它可以正常工作。

所以我的问题是有没有办法在Spock框架中使用Java类?

1 个答案:

答案 0 :(得分:2)

Spock是一种基于DSL Groovy的测试语言。它在测试执行之前对规范的Groovy代码执行转换(AST)。在您的情况下,您尝试编写基于Java的Spock测试。 Spock无法从规范的Java代码执行AST转换并抛出IvalidSpecException。