--------------------------------------------
On Wed, 3/18/15, Victor Paredes <tato...@gmail.com> wrote:

 Subject: [arquitectura] Problemas para realizar Testing.
 To: josedebai...@yahoo.com
 Date: Wednesday, March 18, 2015, 2:48 PM
 
 Entendi
 perfecto! 
 
 Entonces... resumiendo: Tenes codigo legacy con
 una confusa separacion de responsabilidades la cual no te
 permite ejecutar facilmente pruebas de integracion entre
 componentes ( me imagino constructores con muchisimos
 parametros ). Mantener los test integrales te ocasiona un
 costo cada ves mayor.
 
 
 Si decidis mantener los test integrales ubicalos
 en un proyecto aparte, si trabajas con MSTEST podes utilizar
 los metodos SETUP y TEARDOWN para realizar la preparacion de
 tu entorno de datos sin tocar el contexto de EF.
 
 Si decidis buscar una mejor opcion, te recomiendo
 ver alguna herramienta de automatizacion de pruebas tipo Selenium, hace un
 tiempo escribi un articulo
 sobre esta herramienta que me dio muy buenos resultados.
 
 
 
 El 18 de marzo de
 2015, 13:14, Mariano German Villarreal Kuber <german.ku...@gmail.com>
 escribió:
 Gracias por la respuesta
 Vic.Te cuento no estoy haciendo TDD, y no existe
 la posibilidad de re encaminar el proyecto a TDD por la
 cantidad de código y una arquitectura sin separación de
 responsailidad.Básicamente mi proyecto solo
 tiene test de integración, ya que si un test no le pega a
 la base de datos, en mi caso no tiene sentido, ya que como
 mencione anteriormente cada método conciste en una consulta
 a la db.Ahora quizás mi pregunta entonces seria,
 como organizo mis test de integración, esta bien que genere
 data dummy la inserte y luego la consulte
 ?
 
 Saludos.
 El 18 de marzo de
 2015, 13:03, Victor Paredes <tato...@gmail.com>
 escribió:
 Ok, vayamos por el
 principio.  ¿ Estas intentando hacer TDD ? Yo entiendo que
 no ya que no cumple ninguno de los principios FIRST. Tus
 test dependen de una base de datos y el resultado de una
 ejecucion puede dejar basura y afectar otros tests
 
 Si estas queriendo aplicar TDD te recomiendo ver
 la forma de volver al buen camino ya que mientras mas
 avances peor vas a estar ( ya de por si comentas que agregar
 o modificar Test te cuesta horrores ).
 
 Si estas queriendo probar la comunicacion de su
 assemblie con la base de datos lo que necesitas hacer son
 test de integracion. Para realizar estas pruebas yo uso
 MSTEST, creo un proyecto nuevo de test ( completamente
 separado de los Test Unitarios ) y en ese proyecto realizo
 todas las pruebas de integracion.
 
 
 
 Otra cosa que me hace ruido, y lo digo desde mi
 ignorancia de tu proyecto, es que debas tener tanto codigo
 en tu capa de datos aun que posiblemente sea una necesidad
 inevitable.
 
 El 18 de marzo de 2015, 12:25, Mariano
 German Villarreal Kuber <german.ku...@gmail.com>
 escribió:
 Buenos días
 chicos. Estoy teniendo un quilombito a la hora de hacer
 testing. Les cuento que la aplicación en la que trabajo es
 una aplicación puramente centrada en la capa de datos. La
 lógica de negocio se traduce básicamente en consultas
 Linq.
 Ahora el problema particular, es como realizar
 test.
 Al momento por cada test que tengo que crear,
 debo crear datos dummy, insertarlos en la base de datos y
 luego consumir los metodos que querean sobre esa tabla, una
 vez que el test termino, eliminar los registro de la base de
 datos.
 Como lo estoy haciendo ? Tuve que generar un
 método que se atachee al contexto de entity dentro del
 Initialize del Test, y que cada vez que detecte que se
 agrega o se realiza update, este método guardo los objetos
 en una lista. Y una vez que el test finaliza roolbackea la
 acción que se haya aplicado sobre este objeto. Esto
 funciona pero al pasar de ambiente y como es logico me
 encuentro que ya hay datos en la base, y que si mis test, no
 los genero con datos muy "raros" (para evitar que
 por alguna casualidad  haya otro similar en la db), estos
 rompen.
 Mas alla del trabajo artesanal que tuve que hacer
 y que desde ya es discutible si esta bien o no. Me gustaría
 saber como testear este tipo de aplicaciones.
 Para la generación de objetos estoy aplicando el
 patrón Builder, el cual tiene el control total de los
 objetos a generar en cada Test.
 De todos modos, no veo cómodo nada de esto, cada
 vez que tengo que meter un nuevo test es un parto, ni les
 cuento de modificar.
 Espero que se haya comprendido el problema y
 puedan darme una ayuda.
 Saludos.
 
 
 
 -- 
 Victor Paredes
 
 
 
 
 
 
 
 -- 
 Victor Paredes
 


Reply via email to