-si el assert dió OK, es porque encontró los datos en la BD. En todo caso, agregá una llamada al debugger adentro del test y probá desde ahí. Para llamar al debugger:
require 'ruby-debug' debugger también hay una guía de debugging. en http://guides.rubyonrails.org/debugging_rails_applications.html (la mano de miloops estuvo ahi). -también podés probar de ver log/test.log, por ejemplo con tail -f log/test.log, ahí aparecen las consultas SQL que tiran los test. Fijate si los INSERT aparecen ahí. saludos, Maximiliano 2009/12/29 Bizancio Spirit <[email protected]> > Hola a todos, gracias por sus respuestas. Todavía no pude solucionar el > problema. > > Corrí *este* test: > > > def test_rails_lacra > > d = Department.create > d.name = "Hola" > d.save > assert(Department.find_by_name("Hola")); > > p = Person.create > p.name = "Hola" > p.save > assert(Person.find_by_name("Hola")); > end > > Y dio todo OK. Lo que se me ocurre es que en modo testing, de alguna manera > no accede a la BD sino que la cachea o algo así. Es lo único que se me > ocurre. La config de la base de datos de test es la misma que la de > development, por lo cual es imposible que me haya confundido de base de > datos. Lo que hago es poner un *breakpoint* en *p=Person.create* y ahí > hago un select * en la tabla departments y me da Empty Set. > > En cuanto a lo de qué quiero testear, no es esto mismo, sino algo que tiene > que ver con una relacion many_to_many, quería ver que se insertaran los > valores en la tabla intermedia. Pero no vi ningún valor insertado en la base > de datos. > > El 28 de diciembre de 2009 19:34, Gaston Ramos > <[email protected]>escribió: > > El Mon, 28 de Dec de 2009, a las 05:08:36PM -0200, Hugo Massaroli dijo: >> > Hola genteee, estoy de vuelta y en forma de... nuevos problemas con >> Rails. >> > He aquí el meollo de la cuestión: >> > >> > * def test_rails_lacra >> > d = Department.create >> > d.name = "Departamento 1" >> > d.save! >> > p = Person.create >> > p.name = "Jorge" >> > p.save! >> > end* >> > >> Creo que la pregunta acá es: Qué querés testear?, empezá por poner un >> nombre >> más descriptivo como: >> >> def test_department_should_not_be_valid_without_a_name >> d = Department.create >> assert_equal d.errors.on(:name), "can't be blank" >> end >> >> algo así que te parece? >> >> > Eso está adentro de una unit test. Como ven, un código simple y >> sencillo. El >> > tema es que esos save no están funcionando. *Nunca se guarda nada en >> > la db.*Pensando que Rails por ahí borra la db de prueba en cada test, >> > debugueo y >> > detuve el thread justo después del primer thread y nada. No había datos >> en >> > la db. Pensé que se trataba del título del test y que Rails podría >> haberse >> > ofendido porque lo llamé lacra, pero antes había intentado con un título >> no >> > ofensivo y tampoco pasó nada. >> > >> > Quizás Rails tenga alguna opción para que en test environment te diga, >> si si >> > guardé todo, de todo OK y en realidad no guarde nada en la db. Hay >> alguna >> > opción así que pueda definirse en los environments? >> > >> > Desde ya les agradezco cualquier ayuda. >> >> > _______________________________________________ >> > 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 >> > > > _______________________________________________ > 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
