【发布时间】:2013-12-07 13:02:47
【问题描述】:
我最近将我的 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
我收到此错误:
Failure/Error: end.to raise_error(ActiveModel::MassAssignmentSecurity::Error)
NameError: uninitialized constant ActiveModel::MassAssignmentSecurity
我怀疑这在某种程度上是由于切换到 Rails 4 的 strong 参数。
我现在如何测试批量分配错误?
感谢您的帮助。
【问题讨论】:
-
使用强参数,这种测试应该在控制器级别完成,而不是模型级别。
-
@Baldrick:好的,既然我已经在我的控制器测试中测试了这个,我可以安全地放弃上面的测试吗?
-
是的。这篇文章可能会让你信服:weblog.rubyonrails.org/2012/3/21/strong-parameters
-
@Baldrick:我有一种预感。感谢您确认。
标签: ruby-on-rails ruby rspec ruby-on-rails-4