Сколько используют Rspec для контроллеров и представлений? - PullRequest
3 голосов
/ 15 августа 2010

Существуют ли веские причины для использования Rspec для контроллеров и представлений тоже?

Мои представления сильно зависят от Javascript, и, насколько мне известно, Rspec не обрабатывает javascript / ajax для представлений.Также я использую Cucumber + Selenium для этого.

И я должен использовать его для контроллеров?

Разве этого недостаточно, чтобы просто использовать Cucumber + Selenium для поведения приложения?Потому что, если тест на огурцы проходит, а затем проходит, зачем мне беспокоиться о представлении Rspec и тестах контроллера?

Может ли кто-нибудь просветить меня в этой теме?

Ответы [ 2 ]

5 голосов
/ 15 августа 2010

Я использую комбинацию Cucumber + Shoulda, но то, что я собираюсь вам сказать, все еще применимо к вашей настройке.

При тестировании контроллера я использую Следует в функциональном тесте, чтобы поразить все мои "отрицательные аутентификационные" ситуации. Например:

  • Зарегистрированный пользователь пытается получить доступ к странице администратора.
  • Вышедший из системы пользователь пытается получить доступ к защищенному контенту.
  • Пользователь A пытается удалить сообщение пользователя B.

Я использую для этого Следует, потому что я обычно ищу, чтобы меня выгнали на страницу входа в систему и что модель, к которой пытались получить доступ злонамеренно, фактически не изменилась. Я мог бы использовать Cucumber для этого, но я считаю, что проще и менее громоздко делать с несколькими макросами Следует и некоторыми функциональными тестами. Здесь лучше всего подходит контекст.

Тогда для "хороших аутентичных" ситуаций я использую огурец. Вещи как:

  • Пользователь получает доступ к своей странице настроек.
  • Администратор выдает отчеты.

Эти типы тестов требуют, чтобы я проверял некоторый фактический контент страницы, а не просто проверял наличие «доступа запрещен» снова и снова. Я считаю, что информативность Cucumber очень подходит здесь.

0 голосов
/ 15 августа 2010

Если вы создаете достаточно полный набор тестов, вы можете просто использовать селен, но если вы хотите проверить поведение вашего javascript отдельно от остальной части приложения, вы можете рассмотреть возможность использования инфраструктуры тестирования javascript, такой как QUnit.

...