Hacer que la prueba de IU codificada espere por eventos concretos durante la reproducción
En una reproducción de prueba de UI codificada, puede indicar a la prueba que espere a que se produzcan ciertos eventos, como que se muestre una ventana, que se oculte la barra de progreso, etc.Para ello, use el método UITestControl.WaitForControlXXX() adecuado, como se describe en la tabla siguiente.Para obtener un ejemplo de una prueba de UI codificada que espera a que se habilite un control utilizando el método WaitForControlEnabled, vea Tutorial: Crear, modificar y mantener una prueba de IU codificada.
Requisitos
- Visual Studio Ultimate, Visual Studio Premium
Sugerencia |
---|
También puede agregar retrasos antes de acciones mediante el editor de pruebas de IU codificadas.Para obtener más información, vea Cómo: Insertar un retraso antes de una acción de IU mediante el editor de pruebas de IU codificadas. |
Métodos UITestControl.WaitForControlXXX()
Métodos UITestControl.WaitForControlXXX() |
Descripción |
---|---|
[ M:Microsoft.VisualStudio.TestTools.UITesting.UITestControl.WaitForControlReady ] |
Espera hasta que el control esté listo para aceptar acciones del mouse y del teclado.El motor llama implícitamente a esta API para que todas las acciones esperen hasta que el control esté listo antes de hacer cualquier operación.Sin embargo, en algún escenario esotérico, tal vez tenga que hacer la llamada explícita. |
[ M:Microsoft.VisualStudio.TestTools.UITesting.UITestControl.WaitForControlEnabled ] |
Espera hasta que el control esté habilitado cuando el asistente está haciendo alguna validación asincrónica de la entrada realizando llamadas al servidor.Por ejemplo, el método puede esperar hasta que el botón Siguiente del asistente esté habilitado ().Para obtener un ejemplo de este método, vea Tutorial: Crear, modificar y mantener una prueba de IU codificada. |
[ M:Microsoft.VisualStudio.TestTools.UITesting.UITestControl.WaitForControlExist ] |
Espera hasta que el control aparezca en la interfaz de usuario.Por ejemplo, espera un cuadro de diálogo de error después de que la aplicación haya hecho la validación de los parámetros.El tiempo que lleva la validación es variable.Puede utilizar este método para esperar el cuadro de diálogo de error. |
[ M:Microsoft.VisualStudio.TestTools.UITesting.UITestControl.WaitForControlNotExist ] |
Espera hasta que el control desaparezca de la interfaz de usuario.Por ejemplo, puede esperar hasta que desaparezca la barra de progreso. |
[ M:Microsoft.VisualStudio.TestTools.UITesting.UITestControl.WaitForControlPropertyEqual(System.String,System.Object) ] |
Espera hasta que la propiedad especificada del control tenga el valor especificado.Por ejemplo, espera a que el texto del estado cambie a Listo. |
[ M:Microsoft.VisualStudio.TestTools.UITesting.UITestControl.WaitForControlPropertyNotEqual(System.String,System.Object) ] |
Espera hasta que la propiedad especificada del control tenga el valor contrario del especificado.Por ejemplo, espera a que el cuadro de edición no sea de solo lectura, es decir, modificable. |
[ M:Microsoft.VisualStudio.TestTools.UITesting.UITestControl.WaitForControlCondition(System.Predicate{Microsoft.VisualStudio.TestTools.UITesting.UITestControl}) ] |
Espera a que los retornos de predicado especificados sean true.Esto puede usarse en operaciones de espera complejas.Por ejemplo, puede esperar hasta que el texto de estado sea Succeeded o Failed como se muestra en el código siguiente:
|
[ M:Microsoft.VisualStudio.TestTools.UITesting.UITestControl.WaitForCondition``1(``0,System.Predicate{``0}) ] |
Todos los métodos anteriores son métodos de instancia de UITestControl.Se trata de un método estático.Este método también espera a que el predicado especificado sea true pero se puede utilizar para la operación de espera compleja (como condiciones OR) en varios controles.Por ejemplo, puede esperar hasta que el texto del estado sea Succeeded o hasta que aparezca un mensaje de error, como se muestra en el siguiente código:
|
Todos estos métodos tienen el siguiente comportamiento:
Los métodos devuelven verdadero si la espera es correcta y falso si la espera dio error.
El tiempo de espera implícito para la operación de espera lo especifica la propiedad WaitForReadyTimeout.El valor predeterminado de esta propiedad es 60000 milisegundos (un minuto).
Los métodos tienen una sobrecarga para aceptar el tiempo de espera explícito en milisegundos.Sin embargo, cuando la operación de espera produce una búsqueda implícita para el control o cuando la aplicación no está disponible, el tiempo de espera real podría ser superior al tiempo de espera especificado.
Las funciones anteriores son eficaces y flexibles y satisfacen casi todas las condiciones.Sin embargo, en caso de que estos métodos no satisfagan sus necesidades y necesite codificar Waitu o Sleep en el código, se recomienda que utilice () Playback.Wait en lugar de Thread.Sleep () API.Las razones para esto son:
Puede utilizar la propiedad ThinkTimeMultiplierpara modificar la duración de la suspensión.De forma predeterminada, esta variable es 1 pero puede aumentar o disminuir para cambiar el tiempo de espera en el código.Por ejemplo, si está haciendo pruebas específicamente a través de una red lenta o en algún otro caso del rendimiento lento, puede cambiar esta variable en un lugar (o incluso en el archivo de configuración) a 1,5 para agregar 50% de espera adicional en todas partes.
Playback.Wait() llama internamente a Thread.Sleep() (después del cálculo anterior) en fragmentos pequeños en un bucle for mientras comprueba la operación del usuario de cancelar o interrumpir.Es decir, Playback.Wait() permite cancelar la reproducción antes del final de la espera mientras que la suspensión no lo hace o produce una excepción.
Sugerencia |
---|
El editor de pruebas de IU codificadas permite modificar fácilmente este tipo de pruebas.Con el Editor de pruebas de IU codificadas puede buscar, ver y editar métodos de prueba.También puede editar acciones de interfaz de usuario y los controles asociados en la asignación de controles de IU.Para obtener más información, vea Editar pruebas de IU codificadas mediante el editor de pruebas de IU codificadas. |
Guía
Para obtener más información, vea Prueba para la entrega continuo con Visual Studio 2012 – chapter 5: Automatización de pruebas del sistema
Vea también
Tareas
Tutorial: Crear, modificar y mantener una prueba de IU codificada
Cómo: Insertar un retraso antes de una acción de IU mediante el editor de pruebas de IU codificadas
Conceptos
Comprobar el código usando pruebas de interfaz de usuario codificadas
Anatomía de una prueba de IU codificada