6/1/2009 23:39 El Bruno

[VSTS2010] Pruebas de UI para aplicaciones Windows (uno de los mejores regalos de reyes)

Buenas

hace unos meses en un número de MSDN Magazine se presentó una biblioteca de clases que permitían crear pruebas unitarias para aplicaciones windows: Microsoft UI Automation Library. El amigo Rodrigo Corral, nos describió un poco el funcionamiento de este set de clases para poder utilizarlas en nuestros proyectos; pero si has intentado hacer algo un poco más complicado que un “Hola Mundo” seguramente has comprendido que este proyecto promete mucho, pero todavía requiere un nivel de madurez un poco mayor para ser práctico.

Por suerte Visual Studio Team System 2010 soluciona este problema integrando este y otros frameworks de prueba dentro del IDE de desarrollo y ejecución de Visual Studio. En particular para afrontar este tipo de escenarios se han creado los llamados Coded UI Tests. Que son un nuevo tipo de elemento que se puede crear en un proyecto de tipo Test.

El siguiente tutorial muestra una serie de pasos para crear un proyecto de Test y agregar una prueba para una aplicación Windows.

Tutorial

1. Para este ejemplo partimos de una aplicación Windows que a partir de 2 cajas de texto, suma los valores de las mismas en una tercera cuando se cambian los valores.

2. Para probar desde un test en Visual Studio la funcionalidad de esta aplicación utilizando una prueba unitaria; dentro de un proyecto de Test agregaremos un nuevo elemento de tipo CodedUITest como muestra la siguiente imagen

3. Lo siguiente que nos llama la atención es que antes de crear la clase de test, se require con que mecanismo crearemos nuestro test. La siguiente imagen muestra las opciones disponibles y para este ejemplo seleccionaremos “Use the UI Control Locator

4. La acción anterior lanza una aplicación que nos permite obtener los controles que posee una aplicación utilizando Drag & Drop y a partir de la misma podemos obtener todos los controles que necesitamos para la prueba. En nuestro ejemplo, obtenemos las 3 cajas de texto.

Además de obtener los controles, podemos organizar los mismos jerárquicamente en el árbol de la izquierda y definir como queremos acceder a los mismos.

5. Una vez obtenidos los controles, es necesario que definamos a que propiedades de los controles queremos acceder en tiempo de ejecución para trabajar con las mismas.

6. Presionamos el boton “Generate Code” y podremos ver como se genera el codigo necesario para acceder a la aplicación y trabajar con la misma.

7. Modificando el código generado, puedo crear rápidamente un test que pruebe si mi aplicación “sabe como sumar 2 números”. El codigo queda como en el siguiente ejemplo:

8. Finalmente podemos ejecutar nuestra prueba unitaria (con la aplicación en ejecución) y veremos como se intercepta la misma y se ejecuta el codigo que hemos definido. En este caso la prueba es correcta :D

 

Si bien el ejemplo es simpre, creo que la mayor virtud de este tipo de pruebas es que aprovechan todo el entorno y funcionalidades ya incluidas en Visual Studio y su integración es 100% fiable (o eso esperamos para el RTM). En los próximos posts mostraré otras formas de formas de crear pruebas de UI desde Visual Studio 2010.

 

Saludos @ Home

El Bruno

Crossposting from ElBruno.com
Archivado en: ,
Comparte este post:

# re: [VSTS2010] Pruebas de UI para aplicaciones Windows (uno de los mejores regalos de reyes)

Wednesday, January 07, 2009 4:09 PM by Jersson

Muy bueno!!!

# re: [VSTS2010] Pruebas de UI para aplicaciones Windows (uno de los mejores regalos de reyes)

Wednesday, January 07, 2009 5:47 PM by Juan Irigoyen

Excelente artículo, sabes si se podrán generalizar pruebas tomando formularios que hereden de un base, para evitar tener que hacer pruebas por cada uno.

# re: [VSTS2010] Pruebas de UI para aplicaciones Windows (uno de los mejores regalos de reyes)

Wednesday, January 07, 2009 6:19 PM by El Bruno

@Jerson gracias

@Juan: jejeje, me has leido la mente ... por suerte al final una "Coded UI Test" es una clase .Net que implementa la logica de una prueba por código con lo que calculo que con un poco de tiempo y ganas se podrá implementar. Lo que me queda de comprobar es si se puede heredar una clase decorada con

[CodedUITest]

public class myCodedUITest

{

// my code goes here

}

y ver como se comporta.

Saludos

# [VSTS2010] Listado de Novedades (VIII)

Monday, June 15, 2009 3:37 PM by El Bruno

Buenas, ya vamos por el 8vo recopilatorio con los posts que voy escribiendo sobre las novedades de Visual

# [VSTS2010] Listado de Novedades (X)

Monday, September 21, 2009 6:39 PM by El Bruno

Buenas, y llegó el 10mo recopilatorio con los posts que voy escribiendo sobre las novedades de

# [VSTS2010] Listado de Novedades (XI)

Tuesday, December 22, 2009 11:03 AM by El Bruno

Buenas, 11vo recopilatorio con los posts que voy escribiendo sobre las novedades de Visual Studio 2010

# [VSTS2010] Listado de Novedades (XII)

Tuesday, January 19, 2010 1:46 PM by El Bruno

Buenas, nuevo recopilatorio con los posts que voy escribiendo sobre las novedades de Visual Studio 2010