Подтвердить что ты не робот

Rspec 2 config: типы типов

В моем spec_helper.rb у меня есть

config.include Devise::TestHelpers, :type => :controller

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

config.include Devise::TestHelpers, :type => :request

но это тоже не работает. Кажется, я не могу найти, какие типы параметров я могу передать в методы rspec include или extend. Я предполагаю: модель и: вид был бы там, кроме других, которых я совершенно не знаю. Что я должен использовать, так что мой запрос spec может пройти и есть список разных типов для: type?

4b9b3361

Ответ 1

Эта фиксация должна помочь уточнить опцию :type.

https://github.com/rspec/rspec-rails/commit/fc5cdbb603f0e66f9f3d19a0a60a775e124fb218

:type => :request действительно, поэтому я не уверен, почему ваши тесты терпят неудачу.

В каком каталоге содержатся ваши интеграционные тесты? Как правило, они расположены в spec/requests или, возможно, spec/integration.

Вы можете использовать другой параметр, чтобы указать, когда включать Devise:: TestHelpers; опция :example_group:

config.include Devise::TestHelpers, :example_group => {
  :file_path => config.escaped_path(%w[spec (requests|integration)])
}

Теперь Devise:: TestHelpers будут включены в группы примеров, файл которых находится в указанных путях.

Обязательно замените элемент массива (requests|integration) именем папки, где находятся ваши интеграционные тесты.

Ответ 2

Возможно, слишком поздно, но для тех, кому это нужно, меняет тип на :feature для меня:

config.include Devise::TestHelpers, :type => :feature