Java 依赖注射在黄瓜中是如何工作的?
我一直在尝试将Java 依赖注射在黄瓜中是如何工作的?,java,selenium,junit,dependency-injection,cucumber,Java,Selenium,Junit,Dependency Injection,Cucumber,我一直在尝试将webdriver注入到步骤中。我用过,效果很好 其思想是将WebDriver作为服务注入steps类。在初始步骤中,您需要添加以下依赖项 <dependency> <groupId>info.cukes</groupId> <artifactId>cucumber-spring</artifactId> <version>1.2.5</version> <sc
webdriver
注入到步骤中。我用过,效果很好
其思想是将WebDriver作为服务注入steps类。在初始步骤中,您需要添加以下依赖项
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-spring</artifactId>
<version>1.2.5</version>
<scope>test</scope>
</dependency>
钩住
钩子类包含@Before和@After
。testInitialier()方法负责加载webDriver文件并创建实例,而testTearDown()方法负责关闭浏览器
public class Hook extends BaseUtil{
BaseUtil base;
@Before
public void testInitializer(){
File file = new
File(IgniteTaskApplication.class.getClassLoader().getResource("driver/chromedriver.exe").getFile());
String driverPath=file.getAbsolutePath();
System.out.println("Webdriver is in path: "+driverPath);
System.setProperty("webdriver.chrome.driver",driverPath);
base.setDriver(new ChromeDriver());
}
public Hook(BaseUtil base) {
this.base = base;
}
@After
public void tearDownTest(){
base.getDriver().close();
}
}
步骤
steps类包含来自已编译功能文件的步骤。要在Eclipse中编译功能文件,需要在Eclipse中安装Eclipse Cumber插件
public class ClickButton_Steps extends BaseUtil{
BaseUtil base;
public ClickButton_Steps(BaseUtil base){
super();
this.base=base;
}
@When("^I clcik on the button$")
public void i_clcik_on_the_button() throws Throwable {
cb=new ClickButtonPage(base.getDriver());
cb.navigator();
}
// The other steps ...
}
我如何运行它
打开功能文件->运行方式->使用Junit运行
问题
我想知道以一种导致依赖注入的方式运行方法的顺序是什么?
我想顺序如下:
方法之前调用@testInitializer()
testInitializer()
在Hook类中,因此它需要创建Hook
类的实例但是,我无法理解其余步骤。也许这根本不是真的。我的意思是,我有一个功能代码,但我无法解释它是如何工作的?正如我正确理解的那样,您使用JUnit作为cucumber spring的测试框架。JUnit提供了以下生命周期 当您在之前使用annotation@对方法进行注释时,它将在您进行的每个测试之前调用此方法。 至于@After可以用于清理资源,并在每次测试后调用 运行测试时的测试流:
- 睾丸初始化器
- 我按了一下按钮
- 撕裂试验
public class ClickButton_Steps extends BaseUtil{
BaseUtil base;
public ClickButton_Steps(BaseUtil base){
super();
this.base=base;
}
@When("^I clcik on the button$")
public void i_clcik_on_the_button() throws Throwable {
cb=new ClickButtonPage(base.getDriver());
cb.navigator();
}
// The other steps ...
}