2009/11/13 Ricardo Markiewicz <[email protected]>: > 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 :)
Eh, no conozco otra solución. > 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 > _______________________________________________ Ruby mailing list [email protected] http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
