黄瓜 - 这两个给定的有什么区别?

Cucumber - what's the difference between these two givens?

整个 BDD 世界的新手,我已经遇到了奇怪的行为。

所以在下面的三个"Given"语句中,它们都引用了table中的整数,对吗?所以我想在映射时(见第二张图片),我只是用“{int}”替换所有“<...>”标签,但事实并非如此。 , , , 保持不变,不被 {int} 取代,而是被 {int}.

取代

这正常吗?如果是这样,规则是什么?

在您的步骤定义中,您指定步骤应匹配哪些文本,您需要指定应匹配哪个 Cucumber 表达式。

将前两步定义更改为: @Given("An X is added at row {int}, {int})@Given("An O is added at row {int}, {int})

提问旁注:下次请将您的特征文件和代码复制到您的问题中。这样可以更轻松地使用您的片段回答。)

您对小黄瓜步骤 Given An X .... 和 Given An O.... 的步骤定义不符合接受 int 参数所需的条件。在步骤定义中,当预期接收整数值作为参数时,您必须使用 {int} 或 (\d+)。这意味着您对前两个给定语句的步骤定义如下

@Given("^An X is added at row {int}, {int}$")
@Given("^An O is added at row {int}, {int}$")