在Rails中更改测试主机名

3

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

由于我的应用程序需要另一个主机名,因此是否有一种方法可以将默认主机名更改为其他内容,以便我不必每次在测试中生成URL时都指定它?

谢谢。

4个回答

2

路径/url 助手从请求对象中获取主机名。因此在测试中,您可以执行以下操作:

request.host = "another-domain.com"

1
这只是针对请求的,不会改变在测试中调用root_url的结果。 - pupeno

1

看起来答案是否定的,在测试代码中,调用url helpers时必须指定主机。


0

是的,我认为你可以在config/environments/test.rb文件中做类似于这样的操作:

config.action_controller.asset_host = "127.0.0.1"

PS:目前还未测试。我记得我之前也写过类似的代码,但是那份代码在我工作的电脑上。如果这份代码不可行的话,明天我会去查看那份代码。


0

这要看你如何测试。例如,如果你正在使用Capybara进行测试套件,你可以指定default_host


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接