使用 Rspec 使用错误数量的参数(给定 2,预期 1)在 get :index 中测试失败
Test failing in get :index with wrong number of arguments (given 2, expected 1) using Rspec
我有一个非常简单的 RSpec 控制器测试,如下所示:
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'
。
知道这里出了什么问题吗?
这是一个已知错误: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
我有一个非常简单的 RSpec 控制器测试,如下所示:
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'
。
知道这里出了什么问题吗?
这是一个已知错误: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