読者です 読者をやめる 読者になる 読者になる

attr_accessibleのrole毎のテスト

Rails RSpec

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を渡して上げればよいです。簡単ですね