我一直在尝试将< code>webdriver注入到步骤中。我已经使用了这个说明,效果很好。
想法是将WebDriver作为服务注入到steps类中。在初始步骤,您需要添加以下依赖项。
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-spring</artifactId>
<version>1.2.5</version>
<scope>test</scope>
</dependency>
依赖关系注入涉及三个主要类。在这里,我们逐一介绍它们。
BaseUtil
BaseUtil是具有WebDriverof Selenium属性的类。这个类非常简单:
public class BaseUtil {
private WebDriver driver;
public WebDriver getDriver() {return driver;}
public void setDriver(WebDriver driver) { this.driver = driver;}
}
钩
钩子类包含之前和之后的。方法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 Cucumber插件。
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调用@在
方法之前,该方法是testLaunalizer()
testLaunalizer()
在Hook类中,因此它需要制作Hook
类的一个实例。 - 它导致调用Hook类的构造器。
但是,我无法理解其余的步骤。也许甚至它根本不是真的。我的意思是,我有一个功能代码,但我无法解释它是如何工作的?
正如我正确理解的那样,您使用JUnit作为cucumberSpring的测试框架。JUnit提供以下生命周期。
当你用annotation @Before来注释这个方法时,它会在你每次测试之前调用这个方法。至于@After可以用来清理资源,并在每次测试后调用。
运行测试时的测试流程:
此外,您可以使用日志记录(slf4j)而不是System.out.println,这样跟踪测试流就更容易了。
如何在类中注入依赖与@Inject注释micronaut框架 如何使用@Inject
问题内容: 我是AngularJS的新手,我想了解更多有关默认注入的依赖项的信息。在阅读代码时,我注意到有时依赖项是事先明确声明的,有时则不是。例如: 给出与以下结果相同的结果: 这是如何运作的?Angular是否假设要注入的模块的名称与参数中的变量相同? 同样,奇怪的是,如果您确实指定将要注入的依赖项,则必须以 正确的顺序 指定 所有 依赖项,否则将无法正常工作。例如,这是损坏的代码: 有人可以
泽西正常使用HK2依赖注入,但我想用匕首2的泽西。Dagger和HK2都实现了JSR330,我认为这是不需要太多努力就可以实现的。我找到了让Jersey与CDI(例如Weld)、Spring DI和Guice一起工作的方法,但在Dagger上我找不到任何东西。 为了提供一些上下文:我正在SE环境中运行Grizzly-Jersey服务器,而不是在EE容器中。我的Maven项目有和作为依赖项,但没有,
问题内容: 已经发布了几个问题,其中包括有关依赖项注入的特定问题,例如何时使用它以及支持它的框架。然而, 什么是依赖项注入?何时/为什么/不应该使用它? 问题答案: 依赖注入 将依赖传递给其他 对象 或 框架 (依赖注入器)。 依赖注入使测试更加容易。注入可以通过 构造函数 完成。 其构造函数如下: 问题 :如果涉及复杂的任务,例如磁盘访问或网络访问,则 很难 对其进行单元测试。程序员必须进行模拟
我想用di。在《颤栗》中,我加上这个https://pub.dartlang.org/packages/di打包我的项目,我开始读这篇文章https://webdev.dartlang.org/angular/guide/dependency-injection文章,但我不完全理解。 所以没关系:在服务类(例如:MyServices)上使用@Injectable()注释,但是如何注入其他类呢?例如
本文向大家介绍webapi中如何使用依赖注入,包括了webapi中如何使用依赖注入的使用技巧和注意事项,需要的朋友参考一下 本篇将要和大家分享的是webapi中如何使用依赖注入,依赖注入这个东西在接口中常用,实际工作中也用的比较频繁,因此这里分享两种在api中依赖注入的方式Ninject和Unity;由于快过年这段时间打算了解下vue.js,所以后面对webapi的分享文章可能会慢点更新,希望支持