我正在尝试从类中调用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....
}
}
答案 0 :(得分:1)
Slider
不应该扩展GebSpec
,因为那样您将实例化并从测试中调用测试。让Spock或JUnit完成运行测试的工作,好吗?
答案 1 :(得分:0)
Mocking Constructor
本身的Spock文档读取 -
(在使用此功能之前请三思。更改可能更好 根据规范设计代码。)
全球模拟支持嘲弄构造函数:
对于您的用例可能就像 -
def someSlider = GroovySpy(Slider, global: true)
1 * new Slider("slider")
答案 2 :(得分:0)
不要尝试从另一个测试中调用测试。这是一个坏主意))