Compartir a través de


Probar aplicaciones de la Tienda Windows con pruebas de IU codificadas

Use las pruebas de IU codificadas para comprobar las aplicaciones de la Tienda Windows.

Crear una aplicación simple de la Tienda Windows

  1. Si desea ejecutar pruebas de IU codificadas para la aplicación de la Tienda Windows basada en XAML, debe establecer una propiedad única de automatización que identifique cada control.

    En el menú Herramientas, señale Opciones y después elija Editor de texto, XAML y, por último Varios.

    Seleccione la casilla para asignar nombre automáticamente a los elementos interactivos cuando se creen.

    Opciones de Varios para XAML

  2. Cree un nuevo proyecto para una aplicación de la Tienda Windows basada en XAML en blanco mediante una plantilla de Visual C# o Visual Basic.

    Crear una aplicación vacía de la Tienda Windows (XAML)

  3. En el Explorador de soluciones, abra el archivo MainPage.xaml.Desde el Cuadro de herramientas, arrastre un control de botón y un control de cuadro de texto a la superficie de diseño.

    Diseñar la aplicación de la Tienda Windows

  4. Haga doble clic en el control de botón y agregue el código siguiente:

    private void button_Click_1(object sender, RoutedEventArgs e)
    {
        this.textBox.Text = this.button.Name;
    }
    
    Public NotInheritable Class MainPage
        Inherits Page
    
        Private Sub button_Click(sender As Object, e As RoutedEventArgs) Handles Button.Click
            Me.textBox.Text = Me.button.Name
        End Sub
    End Class
    
  5. Presione F5 para ejecutar la aplicación de la Tienda Windows.

Crear y ejecutar una prueba de IU codificada para la aplicación de la Tienda Windows

  1. Cree un nuevo proyecto de prueba de IU codificada para la aplicación de la Tienda Windows.

    Nuevo Proyecto de prueba de IU codificada (aplicaciones de la Tienda Windows)

  2. Elija editar la asignación de IU mediante la herramienta de selección precisa.

    Elegir Editar asignación de IU o agregar aserciones

  3. Use la herramienta de selección precisa en el Generador de pruebas de IU codificadas para seleccionar el icono de la aplicación, haga clic con el botón secundario en AutomationId y elija Copiar valor en el Portapapeles.El valor del Portapapeles se usará después para escribir la acción para iniciar la aplicación para prueba.

    Copiar AutomationId en el Portapapeles

  4. En la aplicación de la Tienda Windows en ejecución, use la herramienta de selección precisa para elegir el control de botón y el control de cuadro de texto.Tras agregar cada control, elija el botón Agregar control a asignación de controles de IU en la barra de herramientas del Generador de pruebas de IU codificadas.

    Agregar control a la asignación de IU

  5. Elija el botón Generar código en la barra de herramientas del Generador de pruebas de IU codificadas y elija Generar para crear código para los cambios en la asignación de controles de IU.

    Generar código para la asignación de IU

  6. Elija el botón para establecer un valor en el cuadro de texto.

    Hacer clic en el control de botón para establecer el valor del cuadro de texto

  7. Utilice la herramienta de selección precisa para seleccionar el control de cuadro de texto y después seleccione la propiedad Texto.

    Seleccionar la propiedad Text

  8. Agregue una aserción.Se utilizará en la prueba para comprobar que el valor sea correcto.

    Elegir cuadro de texto con selección precisa y agregar aserción

  9. Agregue y genere código para la aserción.

    Generar código para la aserción del cuadro de texto

  10. Visual C#

    En el Explorador de soluciones, abra el archivo UIMap.Designer.cs para ver el código agregado para el método de aserción y los controles.

    Visual Basic

    En el Explorador de soluciones, abra el archivo CodedUITest1.vb y, en el código del método de prueba CodedUITestMethod1(), haga clic con el botón secundario en la llamada al método de aserción que se agregó automáticamente, Me.UIMap.AssertMethod1(), y elija Ir a definición.Esto abrirá el archivo de UIMap.Designer.vb en el editor de código de modo que pueda ver el código agregado para el método de aserción y los controles.

    Nota de precauciónPrecaución

    No modifique directamente el archivo UIMap.designer.cs o el archivo UIMap.Designer.vb.Si lo hace, se sobrescribirán los cambios en el archivo cada vez que se genere la prueba.

    Método de aserción

    public void AssertMethod1()
    {
        #region Variable Declarations
        XamlEdit uITextBoxEdit = this.UIApp1Window.UITextBoxEdit;
        #endregion
    
        // Verify that the 'Text' property of 'textBox' text box equals 'button'
        Assert.AreEqual(this.AssertMethod3ExpectedValues.UITextBoxEditText, uITextBoxEdit.Text);
    }
    
    Public Sub AssertMethod1()
        Dim uITextBoxEdit As XamlEdit = Me.UIApp2Window.UITextBoxEdit
    
        'Verify that the 'Text' property of 'textBox' text box equals 'button'
        Assert.AreEqual(Me.AssertMethod1ExpectedValues.UITextBoxEditText, uITextBoxEdit.Text)
    End Sub
    

    Controles

    #region Properties
    public XamlButton UIButtonButton
    {
        get
        {
            if ((this.mUIButtonButton == null))
            {
                this.mUIButtonButton = new XamlButton(this);
                #region Search Criteria
                this.mUIButtonButton.SearchProperties[XamlButton.PropertyNames.AutomationId] = "button";
                this.mUIButtonButton.WindowTitles.Add("App1");
                #endregion
            }
            return this.mUIButtonButton;
        }
    }
    
    public XamlEdit UITextBoxEdit
    {
        get
        {
            if ((this.mUITextBoxEdit == null))
            {
                this.mUITextBoxEdit = new XamlEdit(this);
                #region Search Criteria
                this.mUITextBoxEdit.SearchProperties[XamlEdit.PropertyNames.AutomationId] = "textBox";
                this.mUITextBoxEdit.WindowTitles.Add("App1");
                #endregion
            }
            return this.mUITextBoxEdit;
        }
    }
    #endregion
    
    #region Fields
    private XamlButton mUIButtonButton;
    
    private XamlEdit mUITextBoxEdit;
    #endregion
    
    #Region "Properties"
    Public ReadOnly Property UIButtonButton() As XamlButton
        Get
            If (Me.mUIButtonButton Is Nothing) Then
                Me.mUIButtonButton = New XamlButton(Me)
                Me.mUIButtonButton.SearchProperties(XamlButton.PropertyNames.AutomationId) = "button"
                Me.mUIButtonButton.WindowTitles.Add("App2")
            End If
            Return Me.mUIButtonButton
        End Get
    End Property
    
    Public ReadOnly Property UITextBoxEdit() As XamlEdit
        Get
            If (Me.mUITextBoxEdit Is Nothing) Then
                Me.mUITextBoxEdit = New XamlEdit(Me)
                Me.mUITextBoxEdit.SearchProperties(XamlEdit.PropertyNames.AutomationId) = "textBox"
                Me.mUITextBoxEdit.WindowTitles.Add("App2")
            End If
            Return Me.mUITextBoxEdit
        End Get
    End Property
    #End Region
    
    #Region "Fields"
    Private mUIButtonButton As XamlButton
    
    Private mUITextBoxEdit As XamlEdit
    #End Region
    
  11. En el Explorador de soluciones, abra el archivo CodedUITest1.cs o CodedUITest1.vb.Ahora puede agregar código al método CodedUTTestMethod1 para las acciones necesarias si desea ejecutar la prueba mediante los controles agregados a UIMap:

    1. Inicie la aplicación de la Tienda Windows mediante la propiedad ID de automatización que copió en el Portapapeles previamente:

      XamlWindow.Launch("8ebca7c4-effe-4c86-9998-068daccee452_cyrqexqw8cc7c!App")
      
      XamlWindow myAppWindow = XamlWindow.Launch("7254db3e-20a7-424e-8e05-7c4dabf4f28d_cyrqexqw8cc7c!App");
      
    2. Agregue un gesto para pulsar el control de botón:

      Gesture.Tap(this.UIMap.UIApp1Window. UIButtonButton);
      
      Gesture.Tap(Me.UIMap.UIApp2Window. UIButtonButton)
      
    3. Compruebe que la llamada al método de aserción que se generó automáticamente se incluye después de iniciar la aplicación y el gesto en el botón:

      this.UIMap.AssertMethod1();
      
      Me.UIMap.AssertMethod1()
      

    Tras agregar el código, el método de prueba CodedUITestMethod1 debería ser similar al siguiente:

    [TestMethod]
    public void CodedUITestMethod1()
    {
        // To generate code for this test, select "Generate Code for Coded UI Test" from the shortcut menu and select one of the menu items.
    
        // Launch the app.
        XamlWindow myAppWindow = XamlWindow.Launch("7254db3e-20a7-424e-8e05-7c4dabf4f28d_cyrqexqw8cc7c!App");
    
        // Tap the button.
        Gesture.Tap(this.UIMap.UIApp1Window.UIButtonButton);
    
        this.UIMap.AssertMethod1();
    }
    
    <CodedUITest(CodedUITestType.WindowsStore)>
    Public Class CodedUITest1
    
        <TestMethod()>
        Public Sub CodedUITestMethod1()
            '            
            ' To generate code for this test, select "Generate Code for Coded UI Test" from the shortcut menu and select one of the menu items.
            '
    
            ' Launch the app.
            XamlWindow.Launch("8ebca7c4-effe-4c86-9998-068daccee452_cyrqexqw8cc7c!App")
    
            '// Tap the button.
            Gesture.Tap(Me.UIMap.UIApp2Window.UIButtonButton)
    
            Me.UIMap.AssertMethod1()
        End Sub
    
  12. Compile la prueba y luego ejecútela mediante el explorador de pruebas.

    Ejecutar la prueba de IU codificada desde el Explorador de pruebas

    La aplicación de la Tienda Windows se inicia, la acción para pulsar el botón se completa y la propiedad Text del cuadro de texto se rellena y se valida mediante el método de aserción.

    Ejecutar prueba de IU codificada

    Una vez completada la prueba, el explorador de pruebas confirma que se superó la prueba.

    La prueba superada se muestra en el Explorador de pruebas

Preguntas y respuestas

  • P: ¿Por qué no veo la opción para registrar la prueba de IU codificada en la opción Generar código de un cuadro de diálogo Prueba de IU codificada?

    R: La opción para registrar no se admite en aplicaciones de la Tienda Windows.

  • P: ¿Puedo crear una prueba de IU codificada para las aplicaciones de la Tienda Windows basadas en WinJS?

    R: No. Solo se admiten aplicaciones basadas en XAML.

  • P: ¿Puedo crear pruebas de IU codificadas para las aplicaciones de la Tienda Windows en un sistema que no ejecute Windows 8?

    R: No. La plantilla Proyecto de prueba de IU codificada (aplicaciones de la Tienda Windows) solo está disponible en Windows 8.

  • P: ¿Por qué no puedo modificar el código en el archivo UIMap.Designer?

    R: Cualquier cambio que se realice en el código del archivo UIMapDesigner.cs se sobrescribirá cada vez que se genere código mediante UIMap - Generador de pruebas de IU codificadas.Si tiene que modificar un método grabado, debe copiarlo en el archivo UIMap.cs y cambiar el nombre.El archivo UIMap.cs se puede utilizar para invalidar métodos y propiedades en el archivo UIMapDesigner.cs.Debe quitar la referencia al método original en el archivo UITest.cs el Codificado y reemplazarlo con el nombre del método cuyo nombre ha cambiado.

Vea también

Conceptos

Comprobar el código usando la automatización de IU

Establecer una propiedad de automatización única para la prueba de controles de la Tienda Windows