我想在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);
问题:黄瓜需要逐步获取,而不引用该对象。需要Landing_Screen_is_visible()
而不是steps.Landing_Screen_is_visible()
在Cucumber尝试逐步找到需要之前,是否可以实现接口?做静电?
或者可能有另一种实施黄瓜步骤的方式? (步骤相同但实施方式不同)
答案 0 :(得分:0)
您正在寻找的是驱动程序模式,其中您使用相同的步骤defs但在不同的测试环境中使用时使用不同的应用程序驱动程序示例
abstract class MyApplicationDriver {
abstract void login();
然后实现Android
class AndriodApplicationDriver extends MyApplicationDriver {
void login(){};
然后是另一个
class AppleTestDriver extends MyApplicationDriver {
void login(){};
使用MyApplicationDriver作为测试中的接口,然后在上下文中使用实现,你必须看看World对象如何做到这一点