1

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

索引页面甚至有指向特定bars页面的链接(如"/bars/1"),虽然这些链接在浏览器中完美运行,但 Capybaraclick_link在这些链接上的链接将我带回——你猜对了——索引页面。

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

有谁知道发生了什么?

4

1 回答 1

0

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

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

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

于 2013-08-23T07:39:49.117 回答