RSpec 2.6,“预期响应是重定向但是重定向到<http:test.host =”“bar =”“foo =”“>。”</http:>

时间:2011-09-30 08:51:05

标签: ruby-on-rails redirect rspec2

我想知道为什么所有我的重定向测试突然失败了。所有失败都是主题中提到的那种。通常这是在控制器和/或测试中混合foo_urlfoo_path的问题,但这不是这种情况。

控制器操作看起来都像

redirect_to :action => :foo

并且测试看起来都像

response.should redirect_to(:action => :foo)

但我仍然遇到像

这样的错误
Expected response to be a redirect to </bar/foo> 
but was a redirect to <http://test.host/bar/foo>.

即使我用:action => :foo(或等效的命名路由)替换foo_path,也会发生错误。

任何可能导致这种情况发生的想法?

1 个答案:

答案 0 :(得分:0)

解决方案:

深埋在另一个测试中的是:

BasicSocket.do_not_reverse_lookup = true
Socket.do_not_reverse_lookup = true

为查询在线数据库的测试阻止(慢速)反向DNS查找。但是,这是一个全局设置,这导致了上述错误。删除Socket.do...使所有重定向测试再次通过。 (BasicSocket没有这样的问题。)

我在这里记录这一点,以便其他人可以更快地找到解决方案。