2013-10-25 4 views
0

Я хочу определить определение шагов теста огурца в интерфейсе Java.Можно ли определить определение шага теста огурца в интерфейсе Java?

public interface ITestSteps { 
    @Before 
    public void setUpLocal() throws Throwable; 

    @When("^Landing screen is visible$") 
    public void Landing_Screen_is_visible() throws Throwable; 
} 

2 других классы будут реализовывать этот интерфейс:

public class AppleTestSteps implements ITestSteps { ... } 
public class AndroidTestSteps implements ITestSteps { ... } 

У меня есть TestFactory класс, получить свойство с именем окружающей среды (Android или Apple) и инициализировать объект:

ITestSteps steps = TestFactory(platformName); 

проблема : Огурец берет необходимый шаг по имени, без ссылки на объект. Принимает Landing_Screen_is_visible() не steps.Landing_Screen_is_visible()

Возможно ли реализовать интерфейс до того, как Cucumber попытается найти необходимый шаг по имени? Сделать статичным?

Возможно, существует другой способ реализации огуречных шагов? (Те же самые шаги, но разные реализации)

ответ

0

что ищет это шаблон драйвера, где у вас есть те же самые шаги DEFS, но использовать другой драйвер приложения при использовании в примере различных испытательных сред

abstract class MyApplicationDriver { 

    abstract void login(); 

затем реализации для Android

class AndriodApplicationDriver extends MyApplicationDriver { 

    void login(){}; 

, а затем другой

class AppleTestDriver extends MyApplicationDriver { 

    void login(){}; 

используйте MyApplicationDriver в качестве интерфейса в тестах, а затем используйте реализацию в контексте, вы должны посмотреть объект World на то, как это сделать.

Смежные вопросы