使用示例从 SpecFlow 功能文件中的另一列接收值

Receiving value from another column in SpecFlow Feature file with Examples

我正在使用 C# 中的 SpecFlow 编写 BDD 测试。我试图以一种漂亮的方式获取其中一列的值并将其用作另一列的输入。 代码:

Examples:
| volume    | error |
|  0        | Volume must be greater than 0 but is <volume> | 

在这种情况下,我希望 <volume> 取值 0。这可能吗?这显然目前不起作用。 谢谢:)

不,这是不可能的。有人可能会争辩说,这两个音量值之间的联系会更明显、更容易理解,但如果你在这种情况下实际替换为 0,那将是完全可以理解的。如果你确实想强调这种联系,你可以按照以下方式编写另一个场景大纲:

Given the volume has been set to <volume>
When action is triggered
Then the error message should be "Volume must be greater than 0 but is <volume>"

然后是所有非正数示例。

是的,可能如下:

给出的错误消息是 <error> for <volume>:

Examples:
| volume    | error |
|  0        | Volume must be greater than 0 but is %1 |

在您的 StepDef 文件中:

@Given("The error message is {string} for {string})
public void printError(String volume, String error) {
    error=error.replace("%1", error);
    System.out.println(error); // prints correctly with replacement
}