Hola, estoy quemandome la cabeza y ya no se que estoy haciendo bien y
que no, asi que consulto :)
Tengo 2 clases User y Operation, Operation tiene un valor en puntos, y
User tiene una columna points que cachea los puntos del usuario.
El test que hice seria :
it "should change the users points" do
@user = User.create ....
lambda {
@user.operations.create ..... :points => 100
}.should change(@user, :points).by(100)
end
En operations tengo un after create que hace un
User.update_counters(user.id, points) que en el log se ve que se
ejecuta bien, modificando la DB y el user tiene 100 puntos mas ahora,
pero el test falla.
El problema es que update_counters no hace un reload de la clase user,
por lo que el test nunca ve el cambio.
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 :)
Alguno tuvo alguna situacion similar? con callbacks y rspec?
Gracias!
--
--
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