【问题标题】:How to associate Cucumber features to the code itself?如何将 Cucumber 功能与代码本身相关联?
【发布时间】:2014-07-07 16:37:11
【问题描述】:

我正在为我的代码编写黄瓜场景,我想知道它是否真的在测试我编写的场景,然后翻译成英文 + RegeX 格式。

我应该在 spet 定义文件的顶部添加一个 require 吗? 如果我将测试留空或填写任何有效的 ruby​​ 代码,它将通过。黄瓜是否正常工作?

我正在使用 Ruby。

【问题讨论】:

  • 当你执行黄瓜场景时,它会搜索sceanrio中给出的单词,并执行步骤定义[.rb文件]中给出的代码。如果您没有任何代码,则在 SD 黄瓜内完成该步骤已通过。这是黄瓜中的行为

标签: ruby-on-rails testing cucumber bdd


【解决方案1】:

它正在正常工作。

如果你有一个场景说

Given I go to the google website
When I search for flowers
Then I found websites about flowers

然后你运行它,它会停下来告诉你步骤 def 没有定义,并给你如何编写它们的例子。然后您可以复制和粘贴或自己编写它们。

如果你再次运行它,它会失败并且要么说这些步骤是待处理的(如果你在步骤 def 中有待处理,因为它还没有被写入)或者只是作为一个空测试出错。

然后您可以在步骤定义中添加您想要的任何代码......

所以如果我给定的步骤..“给定我去谷歌网站”...

已经放了“Hello World”

当您运行测试时,它会执行代码,并输入 Hello world,然后在其他两个步骤中失败或停止。

它无法读取您的步骤 def 所说的内容并执行此操作,您必须编写代码才能将其转到 google 网站。

这有意义吗?

【讨论】:

  • 好的,你让我看看我是否明白这一点,它并没有真正将步骤中所说的内容与代码本身联系起来,对吧?
  • 不,不直接。它只会将功能文件中的内容与步骤定义中的内容相匹配。步骤中实际发生的事情完全取决于您编写的代码。
【解决方案2】:

您可以要求 webdriver 和 chai 等其他库来帮助您在步骤定义文件中编写某些命令。

我将 cucumber 与 javascript 一起使用,如果它与功能文件步骤不直接匹配,控制台将更正您的步骤定义。我不确定 ruby​​ 是否属于这种情况。

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-20
    • 1970-01-01
    • 2013-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多