2013-10-25 35 views
0

我想在Java界面中定义Cucumber测试步骤的定义。是否可以在Java界面中定义Cucumber测试步骤定义?

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或苹果)和初始化对象:

ITestSteps steps = TestFactory(platformName); 

问题:黄瓜采取所需的步骤的名称,而不参考对象。需要Landing_Screen_is_visible()不是steps.Landing_Screen_is_visible()

是否有可能在黄瓜试图找到需要逐步名称之前实现接口?让静态?

或者可能有另外一种方法实施黄瓜步骤? (同样的步骤,但不同的实现)

回答

0

你想找的是驱动程序模式,你有相同的步骤DEFS但在不同的测试环境示例中使用

abstract class MyApplicationDriver { 

    abstract void login(); 

然后实施针对Android时使用不同的软件驱动程序

class AndriodApplicationDriver extends MyApplicationDriver { 

    void login(){}; 

然后另一个

class AppleTestDriver extends MyApplicationDriver { 

    void login(){}; 

在测试中使用MyApplicationDriver作为接口,然后在上下文中使用实现,您必须查看World对象如何执行此操作

相关问题