【问题标题】:For a BDD, for every scenario, is the Given when and Then statements compulsory?对于 BDD,对于每个场景,Given when 和 Then 语句是强制性的吗?
【发布时间】:2015-12-16 17:07:06
【问题描述】:

对于 BDD,是否可以跳过给定语句或将 When to And 语句转换?

【问题讨论】:

  • 如果您提供一些上下文,会更容易回答这个问题。你的特点是什么?你的场景是什么?你为什么想知道是否应该跳过给定的?你是什​​么意思“conver a When to And”?你能更新一些例子吗?

标签: bdd specflow gherkin


【解决方案1】:

如果您的方案不需要设置,那么我认为跳过Given 步骤是可以的。我不确定跳过任何其他步骤是否有意义,因为When 是操作步骤,如果您没有执行任何操作,那么您在测试什么?

如果它们使您的场景更具可读性,也可以编写没有实现的步骤,这样您就可以拥有这样的东西:

Given a standard installation of the application
When I open the app
Then the app splash screen should be displayed

Given 步骤在此处可能为空(如果标准安装已由某些设置执行,而附加设置由其他步骤执行),但包含它会使该方案更有意义。 (我意识到这不是一个很好的例子,但希望它传达了这一点)

至于将When 更改为And,是的,您可以这样做,因为这是AndBut 关键字的重点,以使步骤更具可读性。它们实际上具有“在此步骤中也重复当前关键字的任何内容”的含义,因此When 之后的And 与另一个When 相同

【讨论】:

  • 我同意这一点。拥有人类可读的测试是使用 Gherkin 语法的一大优点。如果您需要有一个没有代码的给定步骤来实现这一点,那么就去做吧。请记住在注释中解释为什么您的步骤定义中没有实现代码。
  • @alannichols 是的,一条评论解释了为什么在这些情况下通常是个好主意
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多