我想知道为什么所有我的重定向测试突然失败了。所有失败都是主题中提到的那种。通常这是在控制器和/或测试中混合foo_url
和foo_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
,也会发生错误。
任何可能导致这种情况发生的想法?
答案 0 :(得分:0)
深埋在另一个测试中的是:
BasicSocket.do_not_reverse_lookup = true
Socket.do_not_reverse_lookup = true
为查询在线数据库的测试阻止(慢速)反向DNS查找。但是,这是一个全局设置,这导致了上述错误。删除Socket.do...
使所有重定向测试再次通过。 (BasicSocket没有这样的问题。)
我在这里记录这一点,以便其他人可以更快地找到解决方案。