Тестирование на битые ссылки в приложении rails - PullRequest
6 голосов
/ 23 марта 2011

У меня есть приложение rails, где я хочу проверить наличие неработающих ссылок. Какое тестирование я должен использовать интеграционное тестирование или Rspec? Я новичок в BDD.

Заранее спасибо !!

Ответы [ 2 ]

5 голосов
/ 23 марта 2011

Я думаю, это зависит от того, почему вы хотите «проверить» битые ссылки.

Сценарий 1) Для обеспечения правильности введенных пользователями URL-адресов может использоваться такой метод:

def active_link?(url)
  uri = URI.parse(url)
  response = nil
  Net::HTTP.start(uri.host, uri.port) { |http|
    response = http.head(uri.path.size > 0 ? uri.path : "/")
  }  
  return response.code == "200"
end

Затем вы можете использовать это в своих тестах Rspec:

active_link?('http://example.com').should be

Сценарий 2) Вы просто хотите убедиться, что все ссылки на вашем сайте работают:

Если это так, вы можете попробовать использовать Unix команду wget:

wget --spider -r -l 1 --header='User-Agent: Mozilla/5.0' http://example.com 2>&1 | grep -B 2 '404'

Сценарий 2 выводит все 404 на экран вашего терминала. Относительно просто ввести это в команду rake; У Джейсона Сейфера есть отличная запись в блоге об этом (http://jasonseifer.com/2010/04/06/rake-tutorial)

0 голосов
/ 23 марта 2011

Что ж, если вы пишете правильные интеграционные тесты (например, с Cucumber или чем-то еще), вам следует коснуться всего интерфейса интерфейса. Например. нажмите на ссылку, заполните форму и т. д.

Этот набор тестов даст вам немедленное предупреждение, если в вашем приложении есть неработающие ссылки.

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