我如何获得黄瓜和capybara使用http://路径而不是file:///路径?

时间:2011-07-15 17:58:24

标签: cucumber capybara omniauth ruby-on-rails-3.1

我正在使用新的应用程序omniauth和cucumber。我有omniauth和工作,我正在尝试添加适当的黄瓜功能测试。我一直在测试中遇到奇怪的错误 - 手动执行相同步骤时我没有得到的错误。

通过“向我展示页面”我将其缩小到以下事实:当黄瓜做任何事情时,它通过文件路径(例如,file:///path/to/app/tmp/capybara/capybara-201107151148029152254898.html)而不是http路径(例如,{{ 1}})。

为什么我的黄瓜测试会通过文件路径而不是http路径;以及如何解决这种情况?

1 个答案:

答案 0 :(得分:1)

我只能猜测Capybara通过以下步骤实现“向我展示页面”:

  1. 从当前页面获取HTML源代码并将其写入文件
  2. 打开该HTML文件
  3. 我认为你的测试使用HTTP就可以很好地使用你的应用程序了。 (您可以随时通过查看日志文件来验证。)但是“向我显示页面”不能简单地打开它正在测试的URL,因为其内容可能会因请求而变化。

    示例:测试通过POST发布到/comments发布评论。如果由于任何原因失败并且Capybara将打开/comments(引发异常的URL),它将发出GET请求并且无法向您显示它看到的内容。