我有一个全新的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'