即使我的Given语句是假的,我的Cucumber场景也会继续

时间:2013-06-25 14:57:23

标签: cucumber bdd calabash

我有以下情况:

Scenario: Open the menu
  Given I am on the Home Screen
  Then I touch the menu button

如果我在主屏幕上执行此方案,一切都按预期工作。但是,如果在我不在主屏幕上的情况下执行此方案,则“给定我在主屏幕上”指令将返回true,即使它不是真的并且该方案的其余部分继续执行(并最终执行场景失败,因为我实际上不在主屏幕上)。

即使它返回false,我也找不到“给定我在主屏幕上”指令的原因。

我试图找到一种只有在Given指令通过时执行一系列步骤的方法。这是正确的方法吗?

1 个答案:

答案 0 :(得分:4)

来自Cucumber wik i:

  

步骤失败

     

当执行Step Definition的Proc并引发错误时,   步骤标记为红色。从步骤定义返回的内容没有   什么是有意义的。返回nil或false将不会导致a   步骤定义失败。

在步骤定义中返回false是不够的。如果未显示主屏幕,则需要引发错误。