我正在开发一个基于Appium-cucumber-Java的自动化项目,该项目将随着时间的推移而不断发展。
目前,我有一个步骤定义给定,何时,然后在一个文件中用于iOS&另一个Android文件。 这两个文件都从一个共同的basetest类扩展而来。 我在这两个文件中使用new关键字初始化所需的页面对象。
现在,我想将它模块化一点点&创建一个CommonStepDefs文件。但我开始得到nullpointer异常。
您能否建议使用类似于此示例或示例示例的任何方法来构建此
提前致谢。
public class AndroidTestsStepDefs_usingFactory extends BaseTestClass {
AndroidChooseCountryPage androidChooseCountryPage;
AndroidCountrySelectionPage androidCountrySelectionPage;
OrderPrints orderPrints;
AndroidHomePage androidHomePage;
TourPage tourPage;
public AndroidTestsStepDefs_usingFactory() throws IOException, AWTException {
}
@Given("^the app has been installed$")
public void the_app_has_been_installed() throws Throwable {
initializeDriver("android");
super.setCoreAppType("Android");
}
答案 0 :(得分:1)
您有兴趣在步骤定义文件之间共享状态。
在Java中共享状态的惯用方法是创建一个使用依赖注入在所有步骤之间共享的公共对象。
如果您的项目使用依赖项注入框架,请在步骤定义类之间使用相同的共享状态。 Cucumber-JVM支持许多不同的依赖注入框架。可能会支持你的。
如果您不使用依赖注入,我建议使用PicoContainer。
我写了两篇关于这个主题的博客文章。使用
共享状态