繁体   English   中英

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

[英]Cucumber Java - How to use returned parameters from a step in a new step?

我正在使用带有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 { ... }

然后可以将此上下文对象注入包含这些步骤的多个类中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM