2011-08-26 56 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