2009/11/13 Nicolás Sanguinetti <[email protected]>:
> 2009/11/13 Ricardo Markiewicz <[email protected]>:
>> 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? ;)

No, eso si, no me hice entender por mirar la lluvia :P.

A lo que me referia, es que si tengo un controller despues que crea
operaciones, y luego, por ejemplo, manda un mail al usuario avisandole
que ahora tiene XX puntos, en ese controller tengo que arrastrar el
reload y me tengo que acordar en cada lado que haga test y necesite
tener el score actualizado justo en la linea que sigue, que en el
medio tengo que hacer un reload. No se si ahora se entiende mejor o
peor :P


> 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

Yeah, la idea va a ser un custom matcher mas que nada para que quede
menos feo a la vista :)

-- 
--
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

Responder a