问题标签 [picocontainer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
251 浏览

java - 使用具有缓存行为的工厂方法配置 PicoContainer

我想通过为 PicoContainer 提供一个工厂方法(如@ProvidesGuice 中的方法)来配置 PicoContainer,以便在每次我(重新)启动容器时创建一个新实例。这里的要点是我需要该实例在每个周期中都是一个单例,换句话说,我希望它被缓存。

0 投票
1 回答
60 浏览

java - 添加实例和缓存的区别

这两个代码有什么区别?它们都产生相同的结果。

使用缓存:

添加实例:

0 投票
2 回答
1488 浏览

java - Shared WebDriver 在使用 PicoContainer 的第二种情况下变为空

我在这里使用了公认的解决方案并提出了以下代码:

参考图书馆:

pico_ref_libs

特征:

基本步骤:

步骤A:

但是,驱动程序在 ScenarioA 之后“死亡”并在tearDown()ScenarioB 的 Given 步骤中变为 null(两种场景都使用相同的 Given)。我没有使用 Maven。

0 投票
2 回答
2940 浏览

java - 在 Cucumber 中的步骤定义之间共享状态

我有 4 个步骤定义类和一组域对象类。我的第一步定义类如下所示:

我的 Claim 类如下所示:

我的第二步定义类如下所示:

我已经在我的 POM.XML 中导入了 picocontainer 依赖项,并且收到以下错误。

对于“class java.lang.String”来说,3 个可满足的构造函数太多了。构造函数列表:[(Buffer), (Builder), ()]

我的步骤定义类构造函数都没有接收原语作为参数。有没有人知道为什么我仍然收到该错误?会不会是我的业务对象构造函数在其构造函数中期望一个字符串?

提前感谢您的帮助。

0 投票
0 回答
580 浏览

java - 将picocontainer jar添加到java构建路径时找不到黄瓜框架场景

我正在尝试使用多个步骤定义文件构建 Cucumber BDD 框架。我仍在尝试了解如何使用 picocontainer 运行步骤定义文件。我的问题是,一旦我将 picocontainer jar 添加到项目的构建路径中,在执行测试运行程序时,它无法找到任何场景或步骤。

安慰

在此处输入图像描述

Java项目构建路径

在此处输入图像描述

我的项目包含:

我的功能文件有以下步骤:

在此处输入图像描述

前 2 个小黄瓜步骤与以下步骤定义类中的方法绑定:

第三个小黄瓜步骤粘在这个单独的步骤 def 类上:

从测试运行器执行测试时,运行器不会找到任何场景或步骤:

来自 Testrunner 的控制台结果

在此处输入图像描述

但是,当我删除 picocontainer 时,会找到场景和步骤。这将给我留下无法使用共享状态 Webdriver 的原始问题。

删除 picocontainer jar 后的测试运行

在此处输入图像描述

我知道在这个项目中,我还没有设置一个包含共享状态 Webdriver 的类,以及步骤定义页面上的构造函数。我有另一个项目受到同样问题的影响,但我觉得如果我使用那个例子会使这个问题变得更加复杂。

0 投票
0 回答
374 浏览

selenium - 使用 PicoContainer 在 Cucumber 步骤定义之间实现共享测试上下文后面临的问题

我已经使用 PicoContainer 在 Cucumber 步骤定义之间实现了一个共享的测试上下文。

请在下面的共享驱动器中找到我编写的完整代码。

https://drive.google.com/file/d/1bBxOJDW7auqN_CX9tc0KEDo-TiPzew6m/view?usp=sharing

在实现 PicoContainer 之前,我只有一个 Step 定义类,在实现它之后,我为 Home Page 和 Login Page 创建了两个单独的 step def 类。

请找到我正在自动化的以下功能。在我实现共享测试上下文后,只有第一个场景成功运行,而运行第二个场景新浏览器正在打开,然后出现 NullPointerException 失败。

请帮我解决这个问题..

0 投票
1 回答
4494 浏览

java - Pico 容器异常:org.picocontainer.injectors.AbstractInjector$UnsatisfiableDependenciesException:?

我似乎得到了一个 pico 容器异常:org.picocontainer.injectors.AbstractInjector$UnsatisfiableDependenciesException。

我的代码如下:

代表网站特定页面的页面对象:

步骤类:

POM 依赖项:

出于某种原因,在执行我的功能文件时,我似乎收到以下异常任何想法?

0 投票
2 回答
16399 浏览

java - 依赖注入 - Cucumber Pico 容器

在我的情况下,我很难理解和使用依赖注入。我想使用 Pico 容器(https://cucumber.io/blog/2015/07/08/polymorphic-step-definitions)。

这是我的情况......我目前有一个包含我所有硒的一步定义类,而且它变得太大了:

现在我希望有一个包含我的驱动程序、POM 和 Hooks 的类:

另一个包含 my@Given的类,一个包含 my 的类@When,以及一个包含 my 的类@Then

然后我需要正确连接所有内容,以便所有类都可以使用驱动程序、挂钩和 POM。Cucumber 不支持继承,所以接口或依赖注入(Pico Container)是要走的路。我不知道该怎么做,而且我在网上学习过,我只是无法用我可怜的大脑来解决这一切。

0 投票
1 回答
342 浏览

selenium-webdriver - 在 cucumber-jvm 中使用依赖注入是否考虑不好的做法?

我对 Cucumber-jvm/Selenium 还是很陌生,所以如果这个问题听起来很愚蠢,我很抱歉。

背景:我是一家大公司的实习生。我正在为产品进行自动化软件测试。已经有一个现有的自动化测试步骤。我们要做的是扩展项目并添加我们自己的步骤。问题是几乎所有步骤都有相同的钩子方法。我之前问过一个关于如何避免运行钩子方法的问题,一个非常好的人说在钩子方法上使用标签。那是在我发现之前项目中几乎所有的钩子方法都差不多之前。这让我觉得它不是很快/优化,因为如果钩子方法是全局的,那么每次我运行一个特性文件时,它都会执行所有相同的钩子方法。经过几天的编码和研究,我发现使用 picocontainer 进行依赖注入,我认为这是解决当前问题的好方法,但我读了一些文章说依赖注入被认为是一种不好的做法。

我的问题:考虑我上面所说的,在 cucumber-jvm 中使用 picocontainer 的依赖注入是否考虑不好的做法?如果是,是否有更好的解决方案?

(可选背景)我认为这并不重要,但我只是将其包括在内,每个步骤中几乎 95% 的钩子方法:

0 投票
2 回答
877 浏览

maven - 在黄瓜 picocontainer 中获取空指针异常

我正在尝试使用 picocontainer 将 webdriver 传递到我的步骤定义中,但得到空指针

请参阅下面我的实用程序类,其中将 webdriver 实例声明为 public:-

请参考下面我的实用程序类,该类具有调用和销毁驱动程序实例的钩子:-

我的功能文件描述如下: -

特征文件对应的步骤定义文件如下:-

我的跑步者文件如下: -

我的 POM 文件如下所示:-

给出错误的行号是因为驱动程序在下面突出显示的行中为空:-