【发布时间】:2014-07-08 21:19:33
【问题描述】:
我的 Grails 集成测试套件(使用 Spock)中有一些非常相似的测试。我想要一个基础测试类,它包含测试的 90% 的通用逻辑,然后让测试类从它扩展。
我在想:
public abstract BaseSpecification extends IntegrationSpec {
public baseTest() {
//
setUp:
//
...
when:
//
...
then:
...
}
}
然后:
public class SpecificTestSpecification extends BaseSpecification {
public baseTest() {
setup:
// more set up
super.baseTest();
when:
// some more specific testing
then:
// som more testing
}
}
但是尝试这个我遇到了两个问题:
- 它同时运行
BaseClass和SpecificationClass -
SpecificationClass运行时失败:
groovy.lang.MissingMethodException:没有方法签名:BaseSpecification.baseTest() 适用于参数类型:() 值:[] 可能的解决方案:any()、old(java.lang.Object)、any(groovy.lang.Closure)、notify()、wait()、Spy() 在
有什么想法可以在我的 spock 集成测试中实现继承吗?
【问题讨论】:
-
您需要在 SpecificClass 类声明中扩展 BaseClass 而不是 IntegrationSpec。
-
@ShashankAgrawal 对不起,我正在这样做。我的错字。
-
好的,那么您的代码本身的问题描述中有错字吗? (异常消失了吗?)
-
@ShashankAgrawal 谢谢。我更新了问题