RoR, RSpec: хотите убедиться, что каждая ссылка на странице может быть обслужена - PullRequest
2 голосов
/ 01 мая 2011

Я усиливаю тесты RSpec в моем приложении RoR.Я хотел бы простой способ убедиться, что нажатие на каждую ссылку на странице обрабатывается правильно, то есть генерирует распознанный маршрут к контроллеру и имеет метод в контроллере для его обслуживания.

Я могу написатьспециальные тесты для каждой страницы, но было бы предпочтительно, чтобы вспомогательная функция RSpec находила все ссылки на странице автоматически и проверяла каждую из них.FWIW, можно с уверенностью предположить, что все ссылки находятся в моем домене (нет ссылок на внешние сайты).

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

  • ff

Ответы [ 2 ]

1 голос
/ 01 мая 2011

Я бы использовал пробу Капибара ...

 1. make list of  pages
 2. For each page
 3.     Visit page
 4.     get all links using xpath (included in capybaara)
 5.     For each link
 6.          do a Rspec test get url; response.should be_ok
0 голосов
/ 02 мая 2011

Это относится к интеграционному тесту, который вы можете написать либо в RSpec, либо в Cucumber.Само по себе тестирование ссылки имеет ограниченную ценность - оно сообщит вам, если ссылка не работает, но не сообщит, указывает ли ссылка на неправильное место.что-то вроде:

Given I am on the home page
When I follow "Buy Stuff"
Then I should be on the shopping page
...