Como testar os campos attr_accessible no RSpec
Então, estamos montandoattr_accessible
eattr_protected
em muitos campos em nosso aplicativo Rails 3.2. Por enquanto, realmente não testamos para garantir que esses campos estejam protegidos.
Então, decidi pesquisar no google algumas respostas e me deparei com esta solução:
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
Mas esta solução apenas faz testes para verificar se o método está respondendo. O que eu preciso é uma maneira de testar se os atributos podem e não podem ser atribuídos em massa. Sinceramente, amo a sintaxe
it { should_not be_accessible :field_name }
it { should be_accessible :some_field }
lguém tem uma solução melhor para esse problem