Let’s say we mock our User objects in controllers. Then we change
attr_accessible in user.rb. Model tests break, controller do not.
You fix the model ones and go on thinking everything is ok when it’s not
(the controllers are broken).
Even with technique in Example for attr_accessible? - RSpec - Ruby-Forum you would
only be testing if attr_accessible gets called. It wouldn’t show you
places in your controllers where you need to change that mass assignment
to attribute assignment.
places in your controllers where you need to change that mass assignment
to attribute assignment.
Any ideas how to prevent it?
This is a common tradeoff when using mocks. You lose the integration
aspects and arguably incur more maintenance overhead but gain speed
and isolation.
It looks like you want to have integration coverage over that code.
You can either use controller specs without mocks, rails integration
specs, and/or selenium (or watir) test that covers that piece of code.
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.