¡Hola! ¿Te gustaría saber si tus transformaciones de datos funcionan como tienes previsto con un solo comando? ¿Y qué te parecería poder escribir pruebas unitarias de forma fácil y simple para las transformaciones de datos que utilizas? Al hablar de interoperabilidad, normalmente encontraremos muchas transformaciones de datos involucradas. Esas transformaciones de datos se utilizan para convertir datos entre diferentes sistemas o aplicaciones en tu código, así que realmente se encargan de un trabajo muy importante. ### Estrategias a la hora de hacer pruebas Echándole un vistazo al concepto de [Pirámide de Pruebas](https://martinfowler.com/bliki/TestPyramid.html) y a algunos [artículos](https://medium.com/@timothy.cochran/test-pyramid-the-key-to-good-automated-test-strategy-9f3d7e3c02d5) sobre el tema, podemos hacernos rápidamente la idea de que tener una base sólida de pruebas automáticas que requieren poco esfuerzo para escribirlas y mantenerlas resulta mejor que limitarnos a probar utilizando solamente la interfaz gráfica. En un contexto de interoperabilidad, me he encontrado en distintos proyectos con que realmente vale la pena invertir un esfuerzo mínimo en escribir pruebas unitarias para transformaciones de datos, especialmente cuando trabajamos con distintos escenarios al mismo tiempo (e.g. HL7, mensajes custom, etc.). Esto nos permitirá estar seguros de que la lógica de nuestras transformaciones de datos está funcionando como debe después de introducir cambios. Incluso nos permitirá que después de solventar algún error en una transformación de datos, podamos añadir un nuevo caso de prueba unitaria utilizando el mensaje que causó dicho error, de tal manera que estaremos seguro que no lo volveremos a cometer en el futuro.    ![](/sites/default/files/inline/images/images/test-pyramid.png)   ### Una pequeña ayuda que utiliza el framework %UnitTest Para ayudaros a escribir y lanzar pruebas unitarias sobre transformaciones de datos os paso un ejemplo que se apoya el [framework %UnitTest de IRIS](https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=TUNT_preface). El objetivo es permitiros definir en simples ficheros de texto diferentes conjuntos de mensajes de entrada y sus correspondientes salidas esperadas para cada transformación de datos que queráis probar. Supongamos que queréis crear pruebas unitarias para una transformación de datos llamada  Sample.Health.a31ToPatient, deberíais: 1. Crear una nueva clase que herede de DataTransformTestCase. Establecer el parámetro <TestDirectory> al directorio donde estarán almacenados tus ficheros de prueba. 2. En el  <TestDirectory>, crear un sub-directorio llamado  Sample.Health.a31ToPatient. Este sub-directorio almacenará los conjuntos de mensajes de entrada y salida esperados que queráis probar en la transformación de datos. 3. En el sub-directorio Sample.Health.a31ToPatient cread los mensajes de entrada y salida esperados como ficheros  *.in.txt y *.out.txt. 4. ¡Lanzad las pruebas! Podrás ver los resultados en el portal del framework %UnitTest de IRIS. En el caso de que alguna prueba retorne un error, se generará un fichero *.gen.txt, de forma que lo podrás utilizar para comparar el resultado actual con el resultado esperado y comprobar cuál es la diferencia.   ![](/sites/default/files/inline/images/images/dc_datatransformunittest-2.png)     ![](https://raw.githubusercontent.com/intersystems-community/iris-datatransform-unittest/master/img/datatransform-unittest-ok.gif) ### Prueba el ejemplo tú mismo Puedes descargar, ejecutar el ejemplo y obtener más información en [Open Exchange](https://openexchange.intersystems.com/package/iris-datatransform-unittest).