2010/6/18 Francisco Tufró <[email protected]> > > > 2010/6/18 Damian Janowski <[email protected]> > > 2010/6/18 Francisco Tufró <[email protected]>: >> > @sromano: Me interesó como te comenté el approach de no usar el layer de >> > base de datos salvo cuando es realmente necesesario. Podrías pasar el >> post >> > que comentaste sobre reducción de tiempo de testing? >> >> Desde mi humilde experiencia te recomendaría que no vayas por ese >> lado. Es muy engorroso y lo único que hacés es bajar la calidad de tus >> tests (hay gente que cree que testear de esta manera es más 'correcto' >> – esa discusión la podemos tener en un hilo aparte). >> >> Si lo que buscás es reducir el tiempo que tarda en correr tu suite, te >> recomiendo otros caminos, como usar una base de datos en memoria >> (sqlite te deja), o incluso armar un ambiente distribuido para correr >> tests en paralelo. Hubo una charla hace poco en GoRuCo justamente >> sobre estas opciones. Podés ver los slides en >> http://github.com/ngauthier/Grease-Your-Suite > > > Te agradezco el comentario. > De todas formas no le tengo miedo a lo 'engorroso'. > En cuanto a la calidad de los tests no creo que baje, todo depende de cuán > vivo seas para darte cuenta de cuándo una interacción en la db puede afectar > o no. > La base de datos en memoria ya la estoy usando, y no generó una reducción > de tiempo considerable. >
"no generó una reducción de tiempo considerable" : Por esa razon es que no vale la pena. En mi experiencia lo mejor es usar 0 mocks (con criterio). Ademas, me dio buenos resultados siempre usar la misma base de datos en production y testing (el sql en sqlite != del de postgres, por mas que uses activerecord). Los mocks los uso nada mas para no charlar con servicios externos mientras hago testing. O cuando necesito testear una determinada fecha (timecop gem). O en un montón de otras situaciones que _no_son_ escribir a la base de datos :). > Los tests en paralelo tienen un límite, son una mitigación al problema y no > una solución, aunque los voy a implementar al menos en integración continua, > pero estoy buscando una solución más radical. > Gracias! > -- > Francisco Tufró > [email protected] > http://www.franciscotufro.com.ar > http://quov.is > http://www.dias-felices.com.ar > http://www.myspace.com/diasfelices > > _______________________________________________ > Ruby mailing list > [email protected] > http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar > > -- -------------------------------------------------------------- EmmanuelOga.com - Software Developer
_______________________________________________ Ruby mailing list [email protected] http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
