![](/img/trans.png)
[英]Cucumber Java - How to use returned String from a step in next step?
[英]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.