Получение неопределенного метода get для #‹RSpec::ExampleGroups в моем rspec

Рельсы 4.2.5, rspec-рельсы 3.0.2

Я хочу протестировать свой API. Поэтому я создал каталог requests внутри /spec. Есть файл с именем projects_spec.rb

Вот код:

describe 'Projects API' do
  describe 'GET /projects' do
    it 'should return 401 HTTP code' do
      get '/api/v1/projects'
      expect(response.status).to eq(401)
    end
  end
end

И когда я запускаю этот тест, я получаю

NoMethodError: undefined method `get' for #RSpec::ExampleGroups::ProjectsAPI::GETProjects:0x007fee73ad9b48>

Что случилось?

# rails_helper.rb
config.infer_spec_type_from_file_location!

person Meliborn    schedule 02.04.2016    source источник
comment
Вам не хватает require 'rails_helper' в верхней части файла спецификации?   -  person Paul Fioravanti    schedule 03.04.2016
comment
@PaulFioravanti, это работает, но я получаю ТОННЫ предупреждений. Вот моя трассировка стека pastebin.com/LaYmyQEK. Кроме того, есть ли способ избежать добавления require 'rails_helper' в КАЖДЫЙ файл спецификации. Кажется, это не DRY.   -  person Meliborn    schedule 03.04.2016
comment
вы должны добавить require 'rails_helper' к каждой спецификации. Конечно, вы можете использовать некоторое метапрограммирование, чтобы убедиться, что любой файл в каталоге /spec имеет эту строку первой, но по соглашению она должна быть там.   -  person Andrey Deineko    schedule 03.04.2016
comment
Спасибо, а как насчет ОГРОМНОЙ трассировки стека?   -  person Meliborn    schedule 03.04.2016


Ответы (1)


describe 'Projects API', type: :request do
  # ...
end

Кроме того, убедитесь, что вы включили require 'rails_helper' в свой projects_spec.rb.

person Andrey Deineko    schedule 03.04.2016