[rspec-users] How to test the assignment of current_user
Marcelo de Moraes Serpa
celoserpa at gmail.com
Tue Jun 8 12:44:10 EDT 2010
Thanks Vinícius ;)
2010/6/7 Vinícius Baggio Fuentes <vinibaggio at gmail.com>
> Oh yes, forgot to add that, if you do self.current_user = user, it will
> call your mock as expected.
> Sorry for the multitude of emails.
> 2010/6/7 Vinícius Baggio Fuentes <vinibaggio at gmail.com>
> 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
>> On Mon, Jun 7, 2010 at 6:43 PM, Marcelo de Moraes Serpa <
>> celoserpa at gmail.com> wrote:
>>> 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
>>> 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
>>> current_user = @user
>>> Why's that?
>>> rspec-users mailing list
>>> rspec-users at rubyforge.org
> rspec-users mailing list
> rspec-users at rubyforge.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the rspec-users