Hola!
Una de los Dolores de cabeza más comunes cuando trabajas con apps legacy, es la incapacidad de poder aplicar un buen esquema de tests. Usualmente esto es necesario cuando queremos validar que las modificaciones que realizamos no “revienten” las Features actuales de las apps. Ojo, esto no solo es aplicable a apps legacy, también aplica cuando te toca enfrentarte a ese montón de source code que parece que se hubiese programado con los pies.
Pues bien, lo que hace unos años comenzó como PEX allá por el 2010 hoy es parte de Visual Studio 2015 y se conoce como “IntelliTests”. Esta herramienta analiza nuestro código y crea una suite de tests. Veamos un ejemplo, utilizando las clases que uso para controlar el lanza misiles con un Leap Motion.
Sobre una operación compleja que analiza la posición de la mano sobre el LeapMotion, desplegamos el menú contextual y seleccionamos la opción “Create IntelliTest”
Si no tenemos un Proyecto de test en nuestra solución, IntelliTest nos propondrá una serie de opciones para crear un nuevo proyecto.
Ahora bien, una vez creados estos artefactos veremos que la clase creada está vacia. Esto es porque IntelliTest genera automáticamente una serie de tests sobre la base del código que está analizando en cada ejecución. Veamos un ejemplo, lanzamos el menú contextual y seleccionando la opción “Run IntelliTest”
La generación automática ha generado 39 diferentes tests para probar las combinaciones de código que pueden afectar a la operación GetDirection(). Esta es la parte importante:
Si modificamos el código de la operación y lanzamos nuevamente la opción “Run IntelliTest” los tests se generarán nuevamente.
Si queremos tener un grupos de tests, con los que realizar pruebas de regresión, lo que debemos hacer es seleccionar la opción “Save” en el panel de IntelliTest. Aquí tenemos la opción de guardar todos los tests, o seleccionar un subset de los mismos y guardar este subset.
Pues bien, la clase generada contiene una visión estática de tests que podemos utilizar como pruebas de regresión. También es importante saber que podemos agregar nuestras propias asumptions o assertions en los tests generados. Aunque personalmente no sería partidario de modificarlos mucho, si es necesario meterles muchos cambios lo mejor será generar nuestros propios tests. IntelliTest también nos ayuda con un sistema de warnings para casos donde es necesario la creación una Factory por ejemplo.
References
– El Bruno, Pex for Fun http://geeks.ms/blogs/elbruno/archive/2010/08/20/vs2010-pex-for-fun-ideal-para-ver-quien-paga-las-cervezas.aspx
– MSDN IntelliTest, https://msdn.microsoft.com/library/dn823749(v=vs.140).aspx
Saludos @ Madrid
/El Bruno





Leave a comment