2009/11/13 Ricardo Markiewicz <[email protected]>:
> 2009/11/13 Nicolás Sanguinetti <[email protected]>:
>>> Si pongo un reload en el after_save, no funciona porque la instancia
>>> de User que tiene la operacion no es la misma que @user. por lo que lo
>>> unico que me queda es hacer un feo @user.reload en el lamda y
>>> realmente lo odio :)
>>
>> Eh, no conozco otra solución.
>
> jaja, me temía que alguien me responda así :D.
>
> Ahora, lo que me jode es tener que arrastras el @user.reload por todos
> mis controladores cada vez que le creo una operacion (va, cada vez que
> voy a necesitar usar el points actualizado en realidad).
>
> Voy a tener que poner @user.should_receive("reload") en varios lados
> para que nadie me borre esas lineas por error :D (no pongo :S porque
> esta lloviendo y estoy contento :P)

Er, eww? Tu test no esta testeando que el usuario se recargue, es un
efecto secundario del test. Ergo, no pongas una expectation. Si sacan
el @user.reload el test debería fallar, y eso debería ser suficiente.

Como mucho dejá un comentario, pero es más fácil contarle al equipo
por qué hiciste eso. O bueno, cuando tus team mates vean el commit en
how's my code van a preguntar por qué y listo, no? ;)

Y si te jode mucho lo del reload, hacé custom matchers, o helpers en los specs.

lambda { @user.operations.make(:points => 100) }.should
increase_user_points_by(100)

Y por el código que pusiste ahí arriba, estás creando modelos a mano.
Machinist va a ser tu nuevo mejor amigo:
http://github.com/notahat/machinist

Disfrutá la lluvia, yo sigo disfrutando del otoño boreal con unos días
re lindos :D

> --
> --
> Ricardo Markiewicz
> http://www.gazer.com.ar/
> http://www.voyovoy.com/ - ¿Qué hay para hacer?
> _______________________________________________
> Ruby mailing list
> [email protected]
> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a