[HTTP] как изменить "www.example.com" на "localhost: 3000" - PullRequest
0 голосов
/ 12 апреля 2011

привет, я создаю тестовое использование огурца в моих приложениях rails.в моем шаговом сценарии я использовал http basic authenticate, пока он проходит базовую аутентификацию, но когда я хочу вызвать метод на контроллере и опубликовать некоторые параметры, у меня возникла проблема:

сначала я использую этот код на шаге, ноНе удалось перейти к методу на контроллере:

post some_admin_url, @params

секунду Я использовал этот код, а также не удалось, ошибка при запуске перенаправления URI.parse на "www.example.com" Я хочу пойти "localhost: 3000 / admin ", поэтому я могу сопоставить данные:

Net::HTTP.post_form(URI.parse(some_admin_url), {'from' => '2005-01-01','to' => '2005-03-31'}) { |i|  }

FUTURE:

@ seleniumСценарий: администратор хочет активировать пользователяДанный пользователь вошел в систему как администраторИ страница администратора

ШАГИ:

Предоставлено / ^ один пользователь вошел в систему как admin $ / docreate_user_adminпосетите '/ user_sessions / new'fill_in 'user_session [login]',: with => 'siadmin'fill_in 'user_session [пароль]',: with => '12345'кнопка "Anmelden"конец

Дано / ^ страница администратора $ / doтребует "net / http"требует "URI"

uri = URI.parse(user_action_admin_users_url)<br/>
http = Net::HTTP.new(uri.host, uri.port)<br/>
request = Net::HTTP::Get.new(uri.request_uri)<br/>
request.basic_auth("username", "password")<br/>
response = http.request(request)<br/>

конец

enter code here

ПОМОГИТЕ !!!

СПАСИБО

Ответы [ 3 ]

2 голосов
/ 12 апреля 2011

fl00r ответ, вероятно, работает, но не будет перехватывать перенаправления. Если вы хотите ловить перенаправления, вы должны изменить это на более высоком уровне. Для некоторых тестовых сред есть способ установить хост по умолчанию.

Используя Капибару, мы сделали это:

Capybara.default_host = "subdomain.yourapp.local"

Теперь мы фактически используем промежуточное программное обеспечение Rack (только в тестовой среде env :), которое прозрачно изменяет env [HTTP_HOST] для приложения, поэтому нам не нужно заботиться о том, какую тестовую рамку / драйвер браузера мы используем.

Какие рамки вы используете?

0 голосов
/ 08 ноября 2012
uname="myapp"
Capybara.default_host = "http://#{uname}.mywebsite.com:3000"
Capybara.server_port = 3000 # could be any of your choice
Capybara.app_host = "http://#{uname}.mywebsite.com:#{Capybara.server_port}" 

ИЛИ

request.host="www.myapp.com"

, когда вы расширяете ActionController :: TestCase

0 голосов
/ 12 апреля 2011

попробуйте изменить url на path

post some_admin_path, @params

или

post "http://localhost:3000/#{some_admin_url}", @params
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...