我是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类?
答案 0 :(得分:2)
Spock是一种基于DSL Groovy的测试语言。它在测试执行之前对规范的Groovy代码执行转换(AST)。在您的情况下,您尝试编写基于Java的Spock测试。 Spock无法从规范的Java代码执行AST转换并抛出IvalidSpecException。