Rails3.1からattr_accessibleにasでロールを指定できるようになっていますが、そこのテスト
Model
# -*- coding: utf-8 -*- class User < ActiveRecord::Base attr_accessible :name attr_accessible :name, :active, as: :admin end
例えば管理者はユーザがアクティブかどうかを変更できるとします。
spec
describe 'attr_accessible' do describe 'active' do let(:user) { create(:user, active: true) } context 'with_role admin' do it { user.update_attributes({active: false}, as: :admin).should be_true } end context 'without_role admin' do it { expect{ user.update_attributes({active: false}) }.to raise_error(ActiveModel::MassAssignmentSecurity::Error) } end end end
asを渡して上げればよいです。簡単ですね