2011-08-26 55 views
3

显然,在Rails中运行测试时,主机名为“www.example.com”。如果我在测试中运行root_url,它将返回“http://www.example.com/”。在Rails中更改主机名以进行测试

因为我正在做一个需要其他主机名的应用程序,有没有办法将默认的主机名改为别的,所以我不必每次在测试中生成URL时都指定它?

谢谢。

回答

1

看来答案是否定的,在测试代码,你必须调用网址助手时指定的主机。

0

是的,我想你可以做这样的事情在你的配置/环境/ test.rb文件:

config.action_controller.asset_host = "127.0.0.1" 

PS这是未经测试现在。我知道我做了这样的事情,但有一次,但代码在我的电脑上工作。如果它不起作用,我明天会检查它。

+0

这似乎只适用于资产。它不适合我。 – Pablo

0

那么,这取决于你如何测试。例如,如果您使用Capybara作为测试套件,则可以指定default_host

2

路径/ URL助手从请求对象获取主机名。所以在测试,你可以做这样的事情:

request.host = "another-domain.com" 
+1

这只适用于请求,它不会更改测试中调用root_url的结果。 – Pablo