rspec рельсы 6 контроллеров

Я создал новый проект с использованием rails 6 и не могу протестировать многие контроллеры с rspec 3.8 или 3.9.0.pre, например этот тест:

it 'OK' do
  get :index
  expect(response).to be_ok
end

поднимает

Failure/Error: render template: 'rig_masters/index'

     ActionView::Template::Error:
       wrong number of arguments (given 2, expected 1)

если у меня есть контроллер, который отображает json, он проходит, например, если контроллер

def index
  @components = Component.recent
  render json: @components
end

тест проходит

но если я попытаюсь отобразить вид, например

def index
  @components = Component.recent
end

или даже

def index
  @components = Component.recent
  render template: 'components/index'
end

вызывает ошибку ActionView::Template::Error: wrong number of arguments (given 2, expected 1)

Любая помощь в прохождении этих тестов будет принята с благодарностью.


person Boris Barroso    schedule 05.09.2019    source источник
comment
Привет, @Boris, у тебя есть это в конфигурации RSpec config.render_views?   -  person Violeta    schedule 17.09.2019
comment
Нет, но когда я обновился до rspec-rails 4.0.0.beta2, ошибки исчезли.   -  person Boris Barroso    schedule 17.09.2019


Ответы (2)


RSpec еще не совместим с Rails 6. Однако вы можете использовать rspec-rails 4.0.0.beta2, который решит эту конкретную проблему!

Ссылка: https://github.com/rspec/rspec-rails/issues/2155

person Ashkin    schedule 05.09.2019

Я проверил, что проблема исправлена ​​​​в этой версии:

gem 'rspec-rails', '~> 4.0.0.beta2'
person Jigar Bhatt    schedule 04.11.2019