Cucumber Scenario Outline 上的示例表上是不是可以有空值? [复制]

Posted

技术标签:

【中文标题】Cucumber Scenario Outline 上的示例表上是不是可以有空值? [复制]【英文标题】:Is it possbile to have a null value on Example table on Cucumber Scenario Outline? [duplicate]Cucumber Scenario Outline 上的示例表上是否可以有空值? [复制] 【发布时间】:2017-12-18 06:41:33 【问题描述】:

这是我的场景大纲上的示例表,有些没有价值,这可能吗?

Examples:

|ID   | UserName   | Password  | Contact1 | Number       |

|ID1  | username1  | password1 | Phone    | 111 222 4444 |

|ID2  | username2  | password2 |          |              |

|ID3  | username3  | password3 | Email    | a@a.com      |

|ID4  | username4  | password4 |          |              |

【问题讨论】:

请参阅:How do I do X? SO 的期望是,提出问题的用户不仅会进行研究以回答他们自己的问题,还会分享研究、代码尝试和结果。这表明您已经花时间尝试帮助自己,它使我们免于重复明显的答案,最重要的是它可以帮助您获得更具体和相关的答案!另见:How to Ask @JeffC 您标记为重复的问题是关于空字符串的,而这是关于空字符串的,这是完全不同的。本页是谷歌查询“小黄瓜空数据表”时的第一个结果。 @LennyT 我没有将其标记为 dup(两年前......顺便说一句)。如果我这样做了,您会看到一条自动注释,上面写着“可能重复 xxxx”。一些模组因此做了社区标签。 @Jeff Weird!它在我的屏幕上显示“由社区 JeffC 标记为重复”,但我并不真正了解 SO 的内部工作原理。 @LennyT 同意......这有点令人困惑。它在我的屏幕上说了同样的话,但我认为当多人投票接近时,它会选择最常用的投票理由,在这种情况下可能会选择管理员的选择(dup)。我可以告诉它不是我的方式是它会在自动评论中加上我的名字,因为那不在这里,我知道它不是我...... :) 【参考方案1】:

如果特征步骤如下所示,则空值将被视为字符串:

Given ...
When I enter my "<Username>" and "<Password>"
And I enter my "<Contact>"
And I enter my "<Number>"
Then ...

您可以管理步骤定义中的空字符串:

@When("^I enter my \"([^\"]*)\"$")
public void I_enter_my(String contact) throws Throwable 
    // Handle empty string as null
    throw new PendingException();

只是一个例子,不确定代码是否有效。希望对您有所帮助。

【讨论】:

感谢 cmets,我的问题确实在示例数据表上,我有一些不需要的字段,但有些记录具有价值,而有些则没有。我可以将示例表留空吗还是空? 像我的例子一样,联系人 1 和号码不是必填字段,因此第 2 行和第 4 行没有值 是的,您可以让示例表不带任何值。请务必在步骤定义中处理它。 感谢您的所有 cmets,我将通过在 null 值上添加“”来完成这项工作

以上是关于Cucumber Scenario Outline 上的示例表上是不是可以有空值? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

不可转换的类型;无法将“io.cucumber.java.Scenario”转换为“cucumber.runtime.ScenarioImpl”

[C#.NET][SpecFlow] 使用 Scenario Outline 执行多次验证

拆分 Given 和 Then 中的示例用于 SpecFlow Scenario Outline

如何使用 Java 在运行时获取当前 Cucumber 功能文件名

Cucumber 之Gherkin

Cucumber语法格式