黄瓜, 如何在下一步中使用返回值



我不能在接下来的步骤中使用返回的值。示例:我有一个方法:

public class learn_BDD {

    @Test
    @When("^ I have "([^"]*)" dolars on acount$")
    public String checkAcount(String amount){
        String Value = Acount.checkValueOfAcount();
                return returnValue;
    }
    @Test
    @Then("^Check how much I spend$")
    public void howMuchISpend(String returnValue){

        String actualValue = Acount.actualAcountState();
        if (actualValue < returnValue) {
            System.out.println("You are spend money");
        }
    }

在这种情况下,我给出比错误:

***BDD is declared with 1 parameters. However, the gherkin step has 0 arguments [].***

如果有人能帮助我,我将不胜感激。

看到的错误是由于提供给Then注释的正则表达式中缺少捕获组。

howMuchISpend方法有 1 个参数,因此 Cucumber 需要 1 个捕获组,例如 @Then("^Check how much (.+) I spend$")(.+)捕获的字符串作为其参数的值传递。

@Test
@Then("^Check how much (.+) I spend$")
public void howMuchISpend(String returnValue){

    String actualValue = Acount.actualAcountState();
    if (actualValue < returnValue) {
        System.out.println("You are spend money");
    }
}

关于问题的另一部分,每个步骤定义都是独立的,测试方法返回的值将被忽略。如果要将值从一个步骤传递到另一个步骤,则必须使用类范围的变量。

顺便说一句,应避免使步骤依赖。

最新更新