我可以在BDD中何时何地获得Give吗?

时间:2018-07-13 04:55:39

标签: bdd

对于已经存在的测试用例,我有一些扩展方案。 现有的测试用例具有Give,When,Then。 现在,我想在这种情况下进行扩展。

所以,我可以像给定,何时,然后,给定,何时,然后。 希望这不会在执行或任何step_impl中中断。 另外,请提出这是否不是一个好习惯。

2 个答案:

答案 0 :(得分:0)

我想这取决于您用来执行步骤的工具。

如果您使用的是黄瓜,则可以随意混合Given/When/Then/And/But的顺序。

如果您以某种有趣的方式混合关键字,则有可能破坏Gherkin的一项重要特性,即作为活文档的功能。可以创建这种方式无法读取的方案。

在我看来,您想做的是创建一个在更高抽象级别上运行的新方案,而不是将一个小方案扩展为一个更大的方案。或可能将您当前的场景转换为更高的抽象级别。

拥有两个处于不同抽象级别的方案不一定是一件坏事。它从两个不同的角度记录和执行您的产品。

答案 1 :(得分:0)

没有什么可以阻止您在方案的每个步骤中仅使用关键字Given。这没有任何意义-但小黄瓜解析器不会在意。

如果您想拥有结构良好的方案,这些方案在运行时可以用作清晰的测试,则理想情况下,每个方案应具有一个Given,然后是一个When,然后是一个“然后”。 >

毕竟,Given / When / Then可以简单地映射到测试的更传统的三个阶段:Arrange / Act / Assert。用以下步骤编写测试是没有意义的:安排,执行,然后安排更多,然后采取更多的行动-然后声明,然后重新安排等。

否,如果您有多个“何时”或“那么”-您有一个单独的用例/示例/测试。