如何在Rspec和Rails 4中测试质量分配错误?

Tin*_*n81 5 ruby rspec ruby-on-rails ruby-on-rails-4

我最近将我的Rails应用程序从Rails 3升级到4,并且此Rspec测试不再通过:

# spec/models/user_spec.rb:

require 'spec_helper'

describe User do

  it "should not allow access to admin" do
    expect do
      User.new(:admin => true)
    end.to raise_error(ActiveModel::MassAssignmentSecurity::Error)
  end

end
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

Failure/Error: end.to raise_error(ActiveModel::MassAssignmentSecurity::Error)
NameError: uninitialized constant ActiveModel::MassAssignmentSecurity
Run Code Online (Sandbox Code Playgroud)

我怀疑这是由于切换到Rails 4的强大参数.

我现在如何测试质量分配错误?

谢谢你的帮助.

Tin*_*n81 3

正如 Baldrick 正确指出的那样,Rails 4 中不需要在 Rspec 模型测试中测试质量分配问题。Rails 4强参数的整体理念是将所有功能移至控制器。