显然,在Rails中运行测试时,主机名为“www.example.com”。如果我在测试中运行root_url,它将返回“http://www.example.com/”。在Rails中更改主机名以进行测试
因为我正在做一个需要其他主机名的应用程序,有没有办法将默认的主机名改为别的,所以我不必每次在测试中生成URL时都指定它?
谢谢。
显然,在Rails中运行测试时,主机名为“www.example.com”。如果我在测试中运行root_url,它将返回“http://www.example.com/”。在Rails中更改主机名以进行测试
因为我正在做一个需要其他主机名的应用程序,有没有办法将默认的主机名改为别的,所以我不必每次在测试中生成URL时都指定它?
谢谢。
看来答案是否定的,在测试代码,你必须调用网址助手时指定的主机。
是的,我想你可以做这样的事情在你的配置/环境/ test.rb文件:
config.action_controller.asset_host = "127.0.0.1"
PS这是未经测试现在。我知道我做了这样的事情,但有一次,但代码在我的电脑上工作。如果它不起作用,我明天会检查它。
那么,这取决于你如何测试。例如,如果您使用Capybara作为测试套件,则可以指定default_host
路径/ URL助手从请求对象获取主机名。所以在测试,你可以做这样的事情:
request.host = "another-domain.com"
这只适用于请求,它不会更改测试中调用root_url的结果。 – Pablo
这似乎只适用于资产。它不适合我。 – Pablo