生成的RSpec控制器测试失败,参数数量错误(给定2,应为1)



我有一个全新的rails 6应用程序,并且安装了rspec。

我创建了一个控制器,当我运行rspec时,我得到了这个错误:

PagesController GET #index returns http success
Failure/Error: get :index
ActionView::Template::Error:
wrong number of arguments (given 2, expected 1)
# ./spec/controllers/pages_controller_spec.rb:7:in `block (3 levels) in <top (required)>'
# ------------------
# --- Caused by: ---
# ArgumentError:
#   wrong number of arguments (given 2, expected 1)
#   ./spec/controllers/pages_controller_spec.rb:7:in `block (3 levels) in <top (required)>'

生成的rspec测试看起来像:

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

生成的代码中是否存在错误,或者是其他环境问题导致的?

我看不出哪里有两个论点?

根据以下针对Rails 6的GitHub问题,升级到rspec Rails 4.0:

gem 'rspec-rails', '~> 4.0.0.beta3'

这也在本期针对rspec rails的GitHub中引用。

2021年7月更新

这个问题产生了相当正常的流量,rspecrails现在已经远远超过了4.0.0beta3版本。(v5.0.1从今天起(请始终在上查看最新版本https://rubygems.org/gems/rspec-rails并使用它:

gem 'rspec-rails', '~> 5.0.1'

最新更新