在spock测试中无法调用java构造函数

时间:2017-01-30 13:38:37

标签: groovy spock geb

我正在尝试从类中调用java构造函数,该类在Spock测试中扩展了GebSpec。 我有这样的错误:“不允许使用构造函数;而是定义'setup()'或'setupSpec()'方法”。 我需要打这样的话:

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....
    }
}

3 个答案:

答案 0 :(得分:1)

Slider不应该扩展GebSpec,因为那样您将实例化并从测试中调用测试。让Spock或JUnit完成运行测试的工作,好吗?

答案 1 :(得分:0)

Mocking Constructor本身的Spock文档读取 -

  

(在使用此功能之前请三思。更改可能更好   根据规范设计代码。)

     

全球模拟支持嘲弄构造函数:

对于您的用例可能就像 -

def someSlider = GroovySpy(Slider, global: true)

1 * new Slider("slider")

答案 2 :(得分:0)

不要尝试从另一个测试中调用测试。这是一个坏主意))