黄瓜订购给定,何时,然后(给定,何时,然后,何时,然后)

Cha*_*man 2 bdd cucumber jbehave gherkin

作为一个端到端的自动化测试程序,我一直认为Given,When,Then语句(使用Cucumber时结合在Gherkin语言中)应该只出现在1.给定,2.当,3.然后.

即测试不应该遵循,例如,给定,何时,然后,何时,然后.而应该遵循Given,When,Then only.

这种假设的原因在于仅测试应用程序的一个区域的单个测试.

但是,我注意到网上的一些小黄瓜示例,它们有时会使用以下顺序:给定,何时,何时,然后.

有人知道在写完一篇文章之后回到Whens是否可以接受最佳实践?我很欣赏测试仍然有效,只是想知道这是好事还是坏事.

Tod*_*obs 7

语法可互换; 语言不同

小黄瓜语法目前包括六个关键字描述功能的步骤:

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

关键字用于人类消费和易于传达业务逻辑.然而,小黄瓜语言本身将关键词视为可互换的符号,所以你可以像语法(从小黄瓜的角度)写出折磨的英语,如:

但对于一美元持有
然后另一美元更多
给我两美元的所有权我.

这是完全有效的小黄瓜,但数钱的可怕代表.那么,如果所有的单词都是可以互换的,那为什么会有这么多呢?wiki非常清楚,它们提供了一系列约定,以便以更自然的方式进行交流,而wiki甚至提供了一些关于如何区分单词的例子.维基还特别说:

黄瓜在技术上并没有区分这些...... [种类]的步骤.但是,我们强烈建议您这样做!这些单词是为了它们的目的而精心挑选的,你应该知道进入BDD心态的目的是什么.

换句话说,使用Gherkin术语以(相对)自然语言与您的特征进行交流,并将Arcana埋入步骤定义中.使用语言流程中最自然适合的任何关键字,并且不会出现严格遵守可能不适用于所有情况的约定的精心编写的场景.


Dan*_*riu 5

尽管可以用这种方式编写场景,但这不是最佳实践。我就是其中之一,犯了这个错误,它可能会导致报告和维护出现问题。

一个原因是When声明一个操作并Then验证该操作的结果。拥有“何时 - 然后”两次与场景的个人行为背道而驰。

读这个场景的人也会感到困惑:)

这是关于此的一个小帖子