Rails тестирует хост по умолчанию - PullRequest
7 голосов
/ 24 октября 2011

Я бы хотел, чтобы все мои юнит-тесты использовали www.test.host вместо значения по умолчанию test.host.

Я пытался установить ENV['HTTP_HOST'] в config/environments/test.rb, но это не получилось.

Моя цель состоит в том, чтобы избежать перенаправления в моем тесте контроллера, вывод проверки объекта response в моем тесте:

#<ActionController::TestResponse:0x000001059ed378, ..., @header={"Location"=>"http://www.test.host", ... , @status=301, @body=["<html><body>You are being <a href=\"http://www.test.host\">redirected</a>.</body></html>"], ... , "REQUEST_METHOD"=>"GET", "SERVER_NAME"=>"example.org", "SERVER_PORT"=>"80",... , "HTTP_HOST"=>"test.host", "REMOTE_ADDR"=>"0.0.0.0" ...>>

Если это имеет значение, я использую Rails3и RSPEC2

1 Ответ

11 голосов
/ 17 ноября 2011

Вы делаете это, устанавливая request.host в своем тесте. Вы можете сделать это глобально, добавив это к своему test_helper.rb (в любом случае в Rails 3.1, не уверен насчет предыдущих версий, но я думаю, что это похоже):

class ActionController::TestCase
  setup do
    request.host = "www.test.host"
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...