Как я должен проверить логику, связанную с запросами, в разработке Rails? - PullRequest
0 голосов
/ 04 декабря 2009

В моем контроллере приложения определено несколько before_filters для обработки запросов, которые мне не нравятся. Один типичный пример:

before_filter :reject_www

private

def reject_www
  if request.subdomains.include? 'www'
    redirect_to 'http://example.com' + request.path, :status => 301
    false
  end
end

(Возвращение false пропускает любые последующие before_filters и просто немедленно возвращает перенаправление)

Итак, два вопроса:

Во-первых, как мне проверить эту функциональность? Единственный каркас тестирования, который я использовал до сих пор, - это Cucumber + Webrat, который на самом деле не настроен для обработки подобных вещей. Есть ли другой фреймворк, который я должен также использовать для фальсификации подобных запросов?

Во-вторых, могу ли я сам попробовать эту функцию в моей среде разработки? Поскольку я просто просматриваю сайт по адресу localhost: 3000, я не могу гарантировать, что приведенный выше код работает в моем браузере - мне придется запустить его в производство, надеяться, что он работает, и надеяться, что он ничего не испортит Кто-нибудь в то же время, что заставляет меня нервничать. Есть ли альтернатива?

Ответы [ 2 ]

1 голос
/ 04 декабря 2009

В функциональном тесте вы можете явно указать хост запроса. Я не уверен, какую среду тестирования вы предпочитаете, так что вот пример в хорошем ole 'Test :: Unit.

def test_should_redirect_to_non_www
  @request.host = 'www.mydomain.com'
  get :index
  assert_redirected_to 'http://mydomain.com/'
end
0 голосов
/ 04 декабря 2009

По адресу № 2
Вы можете добавить записи в свой файл hosts, чтобы www.mydomain.com указывал на ваш локальный хост, а затем тестировать логику в вашей среде разработки. Вы можете попробовать хостинг с использованием пассажира, чтобы он работал на Apache. Надеюсь, это поможет .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...