If current_user is an instance variable (as if you did attr_accessor :current_user), you should try: @current_user = @user
If not, you should try invoking with self: self.current_user = @user because ruby is creating a local variable named current_user instead of invoking #current_user=. When you do call self, which refers to the object itself, it will use normal method lookup, that will find your #current_user=. On Mon, Jun 7, 2010 at 6:43 PM, Marcelo de Moraes Serpa <celose...@gmail.com > wrote: > Hello, > > This could be rephrased as -- How to test calls of special assigment > (setter) methods? > > I am trying to test the assigmnet of a user object to the > current_user=(new_user) method. It is part of an authentication process and > finally the object is assigned to the session through this method. I have > tried: > > controller.should_receive(:current_user=).with(@user) > post :create, @params > > And the output is: > > expected :current_user= with (#<User id: 605 <.... snip ...> ) once, but > received it 0 times > > I do not understand, since current_user=(new_user) is actually being called > by the controller: > > def create > <snip> > current_user = @user > <snip> > end > > Why's that? > > Thanks, > > Marcelo. > > > _______________________________________________ > rspec-users mailing list > rspec-users@rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users >
_______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users