Cucumber,java - 如何在下一步中使用返回值?

时间:2018-04-13 15:44:43

标签: java cucumber

我无法在后续步骤中使用返回值。 的exaple: 我有一个方法:

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 [].***

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

1 个答案:

答案 0 :(得分:0)

您看到的错误是由于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");
    }
}

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

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