我正在使用 JBehave 自动化我的 Web 应用程序,我面临以下问题。
我创建了一个包含所有前提条件的复合步骤。当我运行这些步骤时,它首先执行复合步骤中的内容,而不是先运行前提条件。
如何使用复合步骤按顺序运行测试。请指教。
以下是我的步骤文件代码。
@Given("I see given step")
public void given()
{
System.out.println("Inside GIVEN");
}
@Then("I see then step")
public void when()
{
System.out.println("Inside WHEN");
}
@Then("I see when step")
public void then()
{
System.out.println("Inside THEN");
}
@Given("I see composite step")
@Composite(steps={"Given I see given step","Then I see then step","When I see when step"})
public void composite()
{
System.out.println("Inside COMPOSITE");
}
当我运行“给定我看到复合步骤”时,复合函数内部的 sysout 首先运行..我需要先执行先决条件。
谢谢!
@Composite 中的步骤并不是实现 @Composite-Annotated-Method 的先决条件...
如果您对基于场景/故事的先决条件感到满意,您可以考虑JBehave Lifecycle。
如果您在步骤基础上需要先决条件(如您所说),我会通过添加第四个 JBehave 步骤来伪造它,该步骤在您的 @Composite 块中称为最后一个。
鉴于你的例子:
@Given("I see given step")
public void given()
{
System.out.println("Inside GIVEN");
}
@When("I see when step")
public void then()
{
System.out.println("Inside THEN");
}
@Then("I see then step")
public void when()
{
System.out.println("Inside WHEN");
}
@Then("your step executed last")
public void then()
{
// logic from composite()
System.out.println("Inside COMPOSITE");
}
@Given("I see composite step")
@Composite(steps={"Given I see given step","When I see when step","Then I see then step","Then your step executed last"})
public void composite()
{
//logic got moved
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句