通过多个WHENs的状态转换来编写Gherkin?

时间:2016-10-24 20:30:08

标签: cucumber gherkin

我的问题是如何通过多个状态转换来编写Gherkin?

在此页面(http://docs.behat.org/en/v2.5/guides/1.gherkin.html)上显示:

whens:
The purpose of When steps is to describe the key action the user performs
  (or, using Robert C. Martin’s metaphor, the state transition).

......他甚至提供了使用多个WHEN的例子。

因此,为了用更快的Cucumber测试替换Selenium测试(在测试期间经历状态转换),我应该在测试期间使用第二个WHEN语句进行转换,还是应该只有1个WHEN并使用那么反而是那个州的过渡?

  Given one thing
  When I open my eyes
  Then I see something
  But I don't see something else
  When I close my eyes
  Then it is dark again
  And I am asleep again

1 个答案:

答案 0 :(得分:2)

一般来说,这种情况应该分开 - 一种情况用于检查open-> close转换,一种用于反向转换。它们将不那么脆弱,并在发生故障时提供更准确的信息。

但是,在锻炼用户界面时,时间始终是一个敏感问题。如果你可以快速/轻松地实现起始状态,那么这是一个非问题,你做分裂。通常情况并非如此,您必须在测试执行速度和小黄瓜的可维护性之间做出选择。如果你没有过度链接这种状态转换,你可能仍然能够保持你的小黄瓜的可维护性。

请注意,最终,你会过度复杂化它,因为添加每一件你无法抗拒诱惑的小事都会容易得多。接下来你知道,在你说“Szenariogrundriss”之前,你的上帝对象就像弗兰肯斯坦一样会被团队成员复制到整个地方。