gpt4 book ai didi

java - 如何在没有冗余的情况下访问通过 Java 中的 Gherkin 步骤定义创建的公共(public)变量?

转载 作者:行者123 更新时间:2023-12-01 22:58:35 25 4
gpt4 key购买 nike

我们有几个功能文件,它们共享通用步骤。例如,如果我想获取登录步骤创建并在 LoginStepDefinitions.java 文件中设置的用户对象,登录是想到的最简单的步骤。是否在我的上下文中,是否有某种方式可以访问此类的变量,我可以 Autowiring 另一个步骤定义还是其他什么?

最佳答案

是的,你可以。使用Context Injection 。 Cucumber 支持许多依赖注入(inject)框架,如 Spring、Guice 和 Picocontainer。因此,您可以使用这些框架中的任何一个来 Autowiring 您的对象。

让我们将小 cucumber 文本称为步骤,并将其实现称为步骤定义,以避免混淆。假设您有两个功能文件login.feature 和product.feature。它们对应的实现在 LoginStepDef.javaProductStepDef.java 。现在假设您已重复使用 login.feature 中的步骤在product.feature 。在这种情况下你应该做的是 inject context在所需的stepdef中,即注入(inject)LoginStepDef ProductStepDef 中的对象。 Cucumber 将在内部使用此上下文对象(注入(inject)的 LoginStepDef 对象)来调用您想要从 login.feature 重用的步骤。只要有一个 getter方法如 getUser()LoginStepDef 。使用注入(inject)的LoginStepDef ProductStepDef 中的对象现在获取 User 对象或 LoginStepDef 中创建/公开的任何对象.

关于java - 如何在没有冗余的情况下访问通过 Java 中的 Gherkin 步骤定义创建的公共(public)变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23674574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com