On Mon, Sep 29, 2008 at 6:35 AM, Juanma Cervera <[EMAIL PROTECTED]> wrote: > Thanks Craig, but I think I don't understand completely. > > "current_user" is a helper method provided by the plugin > restful_authentication > to access the @current_user variable as I understand. > It is defined in lib/authenticated_system.rb. > We use this helper to access the current logged-in user in the system > from any view. > > Do you think that I have to use the variable directly?
This is precisely why it's better to stub methods than try to set up internal state (instance variables). The assigns hash represents instance variables set IN THE VIEW by the controller action. While it is true that the current_user method from restful auth uses @current_user, it does so IN THE CONTROLLER, not in the view. So when the view calls current_user, that call is forwarded to the controller, which is where the @current_user instance variable lives. What you can do that will work in this case is to stub the current_user method directly on the view: template.stub!(:current_user).and_return(user) Now the call won't get delegated to the controller, and you don't have to set up real state in the controller to get a simulated result in the view. Much less brittle for your isolated examples. As always, isolated examples don't tell you when the app works as expected. They tell you when the individual components work as expected. You still need higher level coverage from a tool like cucumber or rails integration tests. Cheers, David > > Juanma > > > > -- > Posted via http://www.ruby-forum.com/. > _______________________________________________ > rspec-users mailing list > [email protected] > http://rubyforge.org/mailman/listinfo/rspec-users > _______________________________________________ rspec-users mailing list [email protected] http://rubyforge.org/mailman/listinfo/rspec-users
