Groovy 无法在spock测试中调用java构造函数
我试图从在Spock测试中扩展GebSpec的类中调用java构造函数。 我有一个错误:构造函数是不允许的;相反,请定义“setup”或“setupSpec”方法。 我需要打这样的电话:Groovy 无法在spock测试中调用java构造函数,groovy,spock,geb,Groovy,Spock,Geb,我试图从在Spock测试中扩展GebSpec的类中调用java构造函数。 我有一个错误:构造函数是不允许的;相反,请定义“setup”或“setupSpec”方法。 我需要打这样的电话: public class Slider extends GebSpec{ private elem public Slider(selector) { this.elem = page.driver.findElement(By.id(selector)) } class Mytest extends
public class Slider extends GebSpec{
private elem
public Slider(selector) {
this.elem = page.driver.findElement(By.id(selector))
}
class Mytest extends GebSpec {
def "try_to_call"() {
given:
to SomePage;
when:
Slider slider = new Slider("slider");
then:
....some code....
}
}
Spock文档本身如下所示:
使用此功能前请仔细考虑。改变一下可能更好
规范下的代码设计
全局模拟支持对构造函数进行模拟:
对于您的用例,可能如下-
def someSlider = GroovySpy(Slider, global: true)
1 * new Slider("slider")
滑块不应该扩展GebSpec,因为这样您就可以从测试中实例化并调用测试。让Spock或JUnit来运行测试,好吗?不要尝试从另一个测试调用测试。这是个坏主意