是否可以在Java界面中定义黄瓜测试步骤定义



我想在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 或 Apple)的属性并初始化对象:

ITestSteps steps = TestFactory(platformName);

问题:Cucumber 按名称执行所需的步骤,而不引用对象。需要Landing_Screen_is_visible()而不是steps.Landing_Screen_is_visible()

是否可以在黄瓜尝试按名称查找需求之前实现接口?做静态?

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

您寻找的是驱动程序模式,在该模式中,您具有相同的步骤defs,但在不同的测试环境中使用时使用不同的应用程序驱动程序示例

abstract class MyApplicationDriver {
     abstract void login();

然后实现安卓

class AndriodApplicationDriver extends MyApplicationDriver {
     void login(){};

然后是另一个

class AppleTestDriver extends MyApplicationDriver {
    void login(){};

在测试中使用MyApplicationDriver作为接口,然后在上下文中使用实现,你必须查看World对象如何做到这一点

最新更新