显然,在Rails中运行测试时,主机名为“www.example.com”。如果我在测试中运行root_url,它将返回“http://www.example.com /”。
由于我的应用程序需要另一个主机名,因此是否有一种方法可以将默认主机名更改为其他内容,以便我不必每次在测试中生成URL时都指定它?
谢谢。
显然,在Rails中运行测试时,主机名为“www.example.com”。如果我在测试中运行root_url,它将返回“http://www.example.com /”。
由于我的应用程序需要另一个主机名,因此是否有一种方法可以将默认主机名更改为其他内容,以便我不必每次在测试中生成URL时都指定它?
谢谢。
路径/url 助手从请求对象中获取主机名。因此在测试中,您可以执行以下操作:
request.host = "another-domain.com"
看起来答案是否定的,在测试代码中,调用url helpers时必须指定主机。
是的,我认为你可以在config/environments/test.rb文件中做类似于这样的操作:
config.action_controller.asset_host = "127.0.0.1"
PS:目前还未测试。我记得我之前也写过类似的代码,但是那份代码在我工作的电脑上。如果这份代码不可行的话,明天我会去查看那份代码。
这要看你如何测试。例如,如果你正在使用Capybara进行测试套件,你可以指定default_host