黄瓜排序给定、何时、然后(Given、When、Then、When、Then)

2023-12-28

作为一名端到端自动化测试人员,我一直认为 Give、When、Then 语句(使用 Cucumber 时合并到 Gherkin 语言中)应该只按 1.Given、2.When、3.Then 的顺序出现。

即测试不应遵循,例如,Given、When、Then、When、Then。相反,应该遵循“Given”、“When”、“Then”。

做出这一假设的原因是,单个测试仅测试应用程序的一个区域。

然而,我注意到网上的一些小黄瓜示例,它们有时使用以下顺序:Given、When、Then、When、Then。

有谁知道在写完“Then”后回到“Whens”是否是可以接受的最佳实践?我很高兴测试仍然有效,只是想知道这是好还是坏的做法。


语法上可互换;语言上的不同

The 小黄瓜语法 https://github.com/cucumber/cucumber/wiki/Given-When-Then目前包括六个用于描述功能步骤的关键字:

  1. Given
  2. When
  3. Then
  4. And
  5. But
  6. *

关键词的存在是为了人类消费和易于传达业务逻辑。然而,Gherkin 语言本身将关键字视为可互换的符号,因此您可以从语法上(从 Gherkin 的角度)编写受折磨的英语,例如:

但对于持有的一美元
然后再加一美元
鉴于我拥有两美元。

这是完全正确的小黄瓜,但却是数钱的可怕表现。那么,如果所有的词都可以互换,为什么有这么多词呢? 维基百科说得很清楚,他们提供了一套约定,以促进以更自然的方式进行交流,维基百科甚至给出了一些如何区分单词的示例。维基百科还特别指出:

从技术上来说,Cucumber 并不区分这些……[种类]的步骤。但是,我们强烈建议您这样做!这些词是根据其目的精心挑选的,您应该知道进入 BDD 思维模式的目的是什么。

换句话说,使用 Gherkin 术语以(相对)自然的语言交流您的功能,并将奥秘隐藏在步骤定义中。使用最自然地适合语言流程的任何关键字,并且不要为不严格遵守某个编写良好的场景而苦恼。习俗这可能并不适用于所有情况。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

黄瓜排序给定、何时、然后(Given、When、Then、When、Then) 的相关文章

随机推荐