我无法在后续步骤中使用返回值。 的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 [].***
如果有人可以帮助我,我将不胜感激。
答案 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");
}
}
关于问题的其他部分,每个步骤定义都是独立的,测试方法返回的值将被忽略。如果要将值从一个步骤传递到另一个步骤,则必须使用类范围的变量。
顺便说一句,应该避免使步骤依赖。