如何尽早退出 Ruby Cucumber 步骤定义



我不知道为什么这这么难。我已经尝试了几种方法,但由于某种原因,这个 Ruby Cucumber 代码要么继续到块中的下一个代码,要么我得到类似"意外返回(LocalJumpError)"的东西。这是显而易见的事情,我找不到答案吗?

我有一个解决方法,只需将所有代码包装在"if 条件 == false"中,但是有更好的方法吗?

When(/^I create scenarios$/) do
   if condition == true
     #exit, return, next, break ????
   end
   #code i don't want to execute if condition matches
end
我相信

您希望通过使用"下一步"提前退出块。

next if condition

你对你给出的代码示例的问题是,你不想执行的代码不是你的 if 块的一部分。

按照你编写它的方式会发生什么,它会检查 if 条件,然后根据它找到的内容执行。然后,它移动到下一行代码,这是您不想运行的代码。

我的建议是尝试这样的事情,

When(/^I create scenarios$/) do
   if condition == true
   else
     #code i don't want to execute if condition matches
   end
end

这里会发生什么,它将检查 if 条件,如果它是真的,代码除了跳过 else 步骤之外什么都不做,因为它满足 if 条件。当它检查 if 条件时,如果它返回 false,那么它将转到 else 步骤,并执行该代码。

我不能保证这是编写此代码的最佳方式,但这很简单,应该足以解决问题

因为如果条件为真,你不希望什么发生,所以我建议在步骤定义中使用unless

When(/^I create scenarios$/) do
  unless condition == true
     #code you want to execute when the condition is false
  end
end

如果condition == true,则流将进入下一步。

相关内容

  • 没有找到相关文章

最新更新