显然,在Rails中运行测试时,主机名是“www.example.com”。如果我在测试中运行root_url,它将返回“http://www.example.com/”。
由于我正在做一个需要其他主机名的应用程序,有没有办法将默认主机名更改为其他内容,所以每次在测试中生成URL时都不必指定它?
感谢。
答案 0 :(得分:2)
路径/网址助手从请求对象中获取主机名。所以在测试中你可以这样做:
request.host = "another-domain.com"
答案 1 :(得分:1)
似乎答案是否定的,在测试代码中,你必须在调用url helpers时指定主机。
答案 2 :(得分:0)
是的,我认为您可以在config / environments / test.rb文件中执行以下操作:
config.action_controller.asset_host = "127.0.0.1"
ps目前尚未经过测试。我知道我做过类似的事情,但有一次,但代码在我的电脑上工作。如果它不起作用我明天会检查它。
答案 3 :(得分:0)
嗯,这取决于你如何测试。例如,如果您将Capybara用于测试套件,则可以指定default_host