Una cosa más que obvié: tenemos dos DB. Una para desarrollar (como te contaba antes, todos la usamos durante el proceso de desarrollo, debugging, etc) y otra que sólo es usada para los tests que se ejecutan durante el proceso de buildeo automático.
Saludos, Luis On 12/7/06, Luis Farzati <[EMAIL PROTECTED]> wrote:
Hola Diego, Mirá, en un proyecto en el que estoy trabajando actualmente la forma de encararlo fue la siguiente: en una primera iteración de la capa de datos, los tests fueron ejecutados contra mocks. En iteraciones posteriores los realizamos contra la DB actual (una sola, centralizada), salvo que exista funcionalidad nueva. La frecuencia con la que corren los tests contra la DB no mockeada es cada vez que se comitean cambios en el SVN ya que usamos CI con CruiseControl.NET. La 2 no la entendí muy bien... En los tests también hacemos los CRUDs, aunque no lo hacemos por separado, si es a lo que te referis. En un mismo tests hacemos todo, desde la creación hasta la eliminación. Esto lo hacemos así porque las operaciones por separado se van a terminar ejecutando en los tests de capas superiores, no en los de la DAL. Para el caso del mock ponemos obviamente inicialización mock. En la DB real los scripts se corren a mano pero la verdad que no es algo que hagamos con frecuencia. Se inicializa una vez la DB de desarrollo y a menos que haya cambios en el schema, los tests se ejecutan sobre lo que hay. Con respecto a lo último, estuve leyendo (posiblemente los mismos artículos =P) y al menos en nuestro caso, hasta ahora no tuvimos la necesidad de tener una DB cada uno. Personalmente creo que eso depende del tipo de solución que estén armando. Tal vez si es algo con muchas transacciones o delicado en cuanto a consistencia y/o contenido (onda, estoy probando y si me agregás un registro tengo que empezar de nuevo) entonces puede ser. Saludos! Luis On 12/7/06, Diego Jancic <[EMAIL PROTECTED]> wrote: > > Hola gente… > > hoy vengo con algunas preguntitas sobre TDD, mas practicas de lo normal… > los temas son los siguientes: > > > > 1) Es necesario tener una DB real (me refiero a que no sea > mockeada) por desarrollador o usan todo el tiempo la mockeada… dicho de otra > forma, cuantas personas y cada cuanto ejecutan los tests en una DB no > mockeada?? > > 2) Como se testea un select/update o delete por ID en una DB > real?? Es decir, después de ejecutar el script para configurar el estado > inicial de la DB tienen que cambiar alguna propiedad constante en los tests, > no?? Tambien el Test de borrar podria crear el registro, pero no me gusta > mucho… ustedes que hacen? > > 3) El script de configuración de la DB, lo ejecutan en el TearUp o > a mano?? Cada uno tiene sus ventajas… > > 4) Según algunos articulos, es necesario un DB por desarrollador, > ademas de la compartida… pero es real esto? Con la mockeada no es > suficiente? > > > > Veran que todas mis preguntas son sobre como testear una DB no mockeada… > Si alguno tiene un ejemplo o articulo bueno tambien lo voy a agradecer… > > > > Saludos a todos!, > Diego >