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

Writing Gherkin through state transition with multiple WHENs?

我的问题是如何通过多个状态转换编写 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 和使用 THEN 代替该状态转换?

  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

一般来说,这样的场景应该被拆分——一个场景检查打开-> 关闭转换,一个场景反向。这样它们就不会那么脆弱,并在发生故障时提供更准确的信息。

然而,当你在锻炼UI的时候,时间总是一个敏感的问题。如果你能quickly/easily达到起始状态,那就没问题了,你来分裂吧。通常情况并非如此,您必须在测试执行速度和小黄瓜的可维护性之间做出选择。如果您不过度链接此类状态转换,您仍然可以保持小黄瓜的良好可维护性。

请注意,您最终会把它弄得太复杂,因为添加每一个小东西会容易得多,您将无法抗拒诱惑。接下来你知道,在你说 "Szenariogrundriss."

之前,你的神器般的弗兰肯斯坦将被团队成员复制到各处