Cucumber Java-如何在新步骤中使用步骤返回的参数?

Cucumber Java-如何在新步骤中使用步骤返回的参数?,java,testing,cucumber,return-value,Java,Testing,Cucumber,Return Value,我使用cucumber和java来测试我的应用程序, 我想知道是否可以获取从第一个场景步骤返回的对象,并在其他步骤中使用它。 下面是所需功能文件和Java代码的示例: Scenario: create and check an object Given I create an object When I am using this object(@from step one) Then I check the object is ok @Given("^I create

我使用cucumber和java来测试我的应用程序,
我想知道是否可以获取从第一个场景步骤返回的对象,并在其他步骤中使用它。 下面是所需功能文件和Java代码的示例:

Scenario: create and check an object  
 Given I create an object  
 When I am using this object(@from step one)  
 Then I check the object is ok  


@Given("^I create an object$")  
    public myObj I_create_an_object() throws Throwable   {  
        myObj newObj = new myObj();  
        return newObj;  
    }  

@When("^I am using this object$")  
    public void I_am_using_this_object(myObj obj) throws Throwable   {  
        doSomething(obj);  
    }  

@Then("^I check the object is ok$")  
    public void I_check_the_object_is_ok() throws Throwable   {  
        check(obj);
    }  
我宁愿不要在类中使用变量
(因为所有方法变量都将在类级别)
但我不确定这是否可能


是否可以在下一步中使用方法中的返回值作为输入?

没有直接支持在其他步骤中使用步骤方法中的返回值。正如您所说的,您可以通过实例变量实现状态共享,这对于较小的示例非常有效。一旦你得到了更多的步骤,并想把它们重新组织成不同的类,你可能会遇到问题

另一种方法是将状态封装到自己的类中,该类使用
ThreadLocals
管理状态,您必须确保初始化或重置此状态,可能需要使用挂钩

如果您使用的是像spring这样的依赖注入框架,那么可以使用提供的场景范围

@Component
@Scope("cucumber-glue")
public class SharedContext { ... }

然后,可以将该上下文对象注入包含步骤的多个类。

如果我希望为我的cucumber java selenium组合框架使用DI,您能推荐一个好的吗?(我读过关于picocontainer的文章,但不确定它有多好)!!根据上的回复,DI框架没有太多帮助!这有点让人困惑你能帮我弄清楚这个问题吗doubt@SakshiSingla对不起,我没有硒的经验。为了测试后端逻辑,我使用spring,它已经在生产代码中使用。