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

Responder a