rspec rails 6 个控制器

rspec rails 6 controllers

我使用 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) 错误

如果能帮助这些测试通过,我们将不胜感激。

RSpec 与 Rails 6 不兼容。 但是,您可以使用 rspec-rails 4.0.0.beta2,它将解决这个特定问题!

Link: https://github.com/rspec/rspec-rails/issues/2155

我检查过此版本已修复问题:

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