【问题标题】:Can i have Given after When and Then in BDD?我可以在 BDD 中的 When 和 Then 之后给予吗?
【发布时间】:2018-10-18 18:56:08
【问题描述】:

我有一个已经存在的测试用例的扩展场景。 现有的测试用例有 Given, When , Then。 现在,我想在这个案例之后进行扩展。

那么,我可以像 Given、When、Then、Given、When、Then 一样。 希望这不会在执行或任何 step_impl 中中断。 另外,如果这不是好的做法,请提出建议。

【问题讨论】:

    标签: bdd


    【解决方案1】:

    我猜这取决于你用来执行这些步骤的工具。

    如果你使用 Cucumber,你可以随意混合Given/When/Then/And/But 的顺序。

    如果您以某种有趣的方式混合关键字,您可能会破坏 Gherkin 的重要属性之一,即作为活文档起作用的能力。以这种方式可以创建一个不可读的场景。

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

    在不同的抽象级别有两个场景不一定是坏事。它从两个不同的角度记录和执行您的产品。

    【讨论】:

      【解决方案2】:

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

      如果您想要在运行时作为清晰测试的结构良好的场景,理想情况下,每个场景应该有一个Given,然后是一个When,然后是一个`Then。

      毕竟,Given/When/Then 只是映射到更传统的三个测试阶段:Arrange/Act/Assert。用以下步骤编写测试是没有意义的:安排,行动 然后安排多一点,然后多行动一点 - 然后断言,然后重新安排等等。

      不,如果您有多个 When 或 Then - 您有一个单独的用例/示例/测试。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-02-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多