【问题标题】:Capybara won't go to pageCapybara 不会去页面
【发布时间】:2013-08-26 03:59:12
【问题描述】:

我正在使用 Capybara 来测试使用 RSpec 的 Rails 应用程序。正确调用visit "/bars" 会将我带到bars 资源的索引页面。但是调用visit "/bars/1"(其中bar 已与id 1 一起保存)也会神秘地将我带到索引页面,即使手动输入URL 也可以。

索引页面甚至包含指向特定 bars 页面的链接(例如 "/bars/1"),虽然这些链接在浏览器中完美运行,但 Capybara 在这些链接上的 click_link 却让我回到了——你猜对了——索引页。

在这两种情况下,bars 控制器中的 show 方法在使用 Capybara 时甚至都不会被调用,尽管当我在浏览器中单击时会调用它。

有人知道发生了什么吗?

【问题讨论】:

    标签: ruby-on-rails rspec capybara


    【解决方案1】:

    如果你已经“将它保存到数据库”并且可以在浏览器中查看它,它就是开发数据库。Capybara 处理你可能没有记录的测试数据库。

    虽然你没有这样的记录,你可以设置 404 重定向到家,这样的结果在 Capybara 是预期的。

    另外注意,在测试中使用命名 id say 1 是不好的。不能保证您最后插入的记录必须是 id 1。最好使用 bars_path @barbars_path Bar.last

    【讨论】:

    • 实际上,这是我所做的不相关的代码更改,绝对不会有任何副作用。 ;) 我在测试数据库中测试所有内容,我在我的 URL 中使用 Bar.last (1 只是为了方便),但您正确地猜到了重定向是其中的一部分。将其标记为正确,因为它们都是很好的见解。
    猜你喜欢
    • 1970-01-01
    • 2012-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多