Сбой теста в get: index с неверным количеством аргументов (задано 2, ожидается 1) с использованием Rspec - PullRequest
0 голосов
/ 08 марта 2020

У меня очень простой тест контроллера RSpe c, который выглядит следующим образом:

require 'rails_helper'

RSpec.describe IndexController, type: :controller do
  describe 'GET #index' do
    it 'returns http success' do
      get :index
      expect(response).to have_http_status(:success)
    end
  end
end

, и он завершается ошибкой:

  1) IndexController GET #index returns http success
     Failure/Error: get :index

     ActionView::Template::Error:
       wrong number of arguments (given 2, expected 1)
     # ./spec/controllers/index_controller_spec.rb:6:in `block (3 levels) in <top (required)>'
     # ------------------
     # --- Caused by: ---
     # ArgumentError:
     #   wrong number of arguments (given 2, expected 1)
     #   ./spec/controllers/index_controller_spec.rb:6:in `block (3 levels) in <top (required)>'

Строка 6 - get :index , Почему он требует 2 аргумента? дается только 1.

Контроллер выглядит так:

class IndexController < ApplicationController
end

и в app/views/index/index.html.erb есть вид, который выглядит следующим образом:

Nothing to see here.

Работает правильно с этим маршрутом: root to: 'index#index'.

Есть идеи, что здесь не так?

1 Ответ

0 голосов
/ 08 марта 2020

Это известная ошибка: https://github.com/rspec/rspec-rails/issues/2177

Я исправил ее, обновив до rails-rspec 4.0.0, на данный момент бета:

gem 'rspec-rails', '~> 4.0.0.beta4' # 4.0.0.beta4 due to https://github.com/rspec/rspec-rails/issues/2177
...