【问题标题】:Cucumber and Capybara test failing, how do I debug?Cucumber 和 Capybara 测试失败,我该如何调试?
【发布时间】:2011-08-18 03:17:15
【问题描述】:

我对使用 Capybara 和 Cucumber 进行测试是全新的。我在上面看到了一些非常有用的视频,并编写了我的第一个测试。但是,所述测试失败,我不知道为什么。

我相信我拥有我需要的所有宝石,并且我有理由确定所有配置都按照文档完成。

但是,当我运行该功能时,它会因缺少内容而失败,但我知道内容在正确的视图中,并且我知道视图正在正确地提供。我可以手动导航,它看起来应该是这样,但是黄瓜/水豚步骤说它找不到内容。

对于我的步骤定义,我有:

When I visit the homepage
  get root_path
  response.should have_content("Log In")
end

在应用程序布局中,当用户未登录时,我会显示“登录”字样。

当功能运行时,我收到失败消息:

expected there to be content "Log In" in ""

有没有办法查看测试中的响应所呈现的 html 是什么?我试着做一个 puts(response) ,但没有做任何事情。还有什么其他原因我没有考虑到它可能会失败?

【问题讨论】:

    标签: cucumber ruby-on-rails-3.1


    【解决方案1】:

    除了 save_and_open_page 功能,我发现我更喜欢使用 launchy gem。看起来更像黄瓜。

    如果你添加到你的 Gemfile 中

    gem 'launchy'
    

    当然还有跑

    bundle install
    

    你可以简单地在你的黄瓜测试中写:

    When ...
    Then show me the page
    Then I should see ...
    

    然后显示页面 也会启动浏览器。我还没有检查,但我猜它只是坐在 save_and_open_page 函数的顶部,但同样,它对我来说感觉更好。

    【讨论】:

      【解决方案2】:

      【讨论】:

      • 正是我想要的,谢谢。不过,当我看到那个页面时,我正在寻找的内容就在那里,所以我不确定我还缺少什么。
      • 此链接已过期。找不到文件。
      • @mhatch 我不再使用 Capybara,这是 9 年前的,但如果有人分享更新的链接,我可以编辑我的回复。
      【解决方案3】:

      您必须使用visit 而不是get。此外,最好拆分您的步骤并使用标准步骤When I go to <page_name>(参见 web_steps.rb 和 paths.rb)

      我建议你看看 rubygems.org 项目 - 它有很多很酷的功能,你可以将其用作示例。

      【讨论】:

      • 我很欣赏有关使用标准化名称的建议,但在听从您的建议后,我仍然无法执行相同的步骤,并且同样缺乏对原因的了解。
      猜你喜欢
      • 1970-01-01
      • 2014-03-02
      • 1970-01-01
      • 2013-05-19
      • 1970-01-01
      • 2018-06-06
      • 2011-10-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多