我对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是什么?我试过做一个put(响应)但是没有做任何事情。任何其他原因可能是我没有考虑失败?
答案 0 :(得分:4)
除了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函数的顶部,但同样,对我来说感觉更好。
答案 1 :(得分:3)
使用save_and_open_page:
答案 2 :(得分:1)
您必须使用visit
而不是get
。此外,最好分割步骤并使用标准步骤When I go to <page_name>
(参见web_steps.rb和paths.rb)
我建议你看看rubygems.org项目 - 它有很多很酷的功能,你可以用它作为例子。