Cómo probar campos attr_accessible en RSpec

Así que hemos estado configurandoattr_accessible yattr_protected en muchos campos a través de nuestra aplicación Rails 3.2. Por ahora, realmente no hacemos pruebas para asegurarnos de que estos campos estén protegidos.

Así que decidí buscar en Google algunas respuestas y me topé con esta solución:

RSpec::Matchers.define :be_accessible do |attribute|
  match do |response|
    response.send("#{attribute}=", :foo)
    response.send("#{attribute}").eql? :foo
  end
  description { "be accessible :#{attribute}" }
  failure_message_for_should { ":#{attribute} should be accessible" }
  failure_message_for_should_not { ":#{attribute} should not be accessible" }
end

Pero esta solución solo prueba para ver si el método responde. Lo que necesito es una forma de probar que los atributos pueden y no pueden asignarse en masa. Sinceramente, me encanta la sintaxis

it { should_not be_accessible :field_name }
it { should be_accessible :some_field }

¿Alguien tiene una mejor solución para este problema?

Respuestas a la pregunta(6)

Su respuesta a la pregunta