2017-01-30 7 views
0

Я пытаюсь вызвать конструктор java из класса, который расширяет GebSpec в тесте Spock. У меня есть эта ошибка: «Конструкторы не разрешены, вместо этого определите метод« setup() »или« setupSpec() ». мне нужно позвонить что-то вроде этого:Не удается вызвать java-конструктор в тесте spock

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

Не пытайтесь вызвать тест из другого теста. Это плохая идея))

0

Спок документация Mocking Constructor сам читает -

(Think twice before using this feature. It might be better to change the design of the code under specification.)

Global mocks support mocking of constructors:

Для вашего случая использования, вероятно, может быть, как -

def someSlider = GroovySpy(Slider, global: true) 

1 * new Slider("slider") 
+1

Thx .... все еще не работает ((( – PanamaBoy

1

Slider не должна распространяться GebSpec потому что тогда вы создадите экземпляр и вызовите тест из теста. Пусть Spock или JUnit выполняют работу для запуска тестов, хорошо?

+0

Да, вы правы))) это мое плохое ( – PanamaBoy