Compartir a través de


Cómo: Crear una prueba de IU codificada controlada por datos

Puede crear una prueba de IU codificada para probar que la interfaz de usuario de una aplicación funciona correctamente.La prueba de IU codificada realiza acciones en los controles de la interfaz de usuario de una aplicación y comprueba que se muestran los controles correctos con los valores correctos.Para obtener más información acerca de cómo crear una prueba de IU codificada, vea Crear pruebas de IU codificadas.

Requisitos

  • Visual Studio Ultimate, Visual Studio Premium

Después de crear la prueba de IU codificada con datos concretos, quizás desee ejecutarla varias veces con conjuntos diferentes de datos para probar diferentes condiciones.Para ello, puede agregar valores de parámetros de un origen de datos a su prueba de IU codificada para crear una prueba de IU codificada controlada por datos.Cada fila del origen de datos es una iteración de la prueba de IU codificada.El resultado general de la prueba estará basado en el resultado de todas las iteraciones.Por ejemplo, si se produce un error en una iteración, el resultado general de la prueba es con errores.

Al generar métodos o aserciones mediante grabación para su prueba de IU codificada, se parametrizan en clases de parámetros todas las constantes a las que se hace referencia en los métodos grabados.Por ejemplo, si agrega un método denominado AddTwoNumbers, el marco de prueba de IU codificada genera otra clase denominada AddTwoNumbersParams y le agrega un campo por cada valor constante que se utiliza cuando se graba el método.Si genera un método de aserción denominado AssertForAdd, el marco genera una clase para los valores esperados denominada AssertforAddExpectedValues.Estas clases generadas automáticamente se usan en los pasos siguientes.

Todos los cambios hechos en la prueba para habilitarla para el uso de un origen de datos para los parámetros se realizarán en el archivo del código fuente de la prueba (i.e. CodedUITest1.cs).No puede modificar el código en el archivo UIMap.Designer.cs.

Después de crear la prueba de IU codificada, puede usar los pasos del procedimiento siguiente para agregar un origen de datos y parámetros a su prueba.En este ejemplo se supone que tiene estos elementos de código en su solución:

  • Una clase de prueba de IU codificada denominada CodedUITest1.

  • Un método de prueba denominado CodedUITestMethod1().

El método de prueba es para una aplicación de calculadora simple que suma dos números y comprueba que se suman correctamente para que esta prueba sea correcta.

El origen de datos es un archivo .csv que contiene los siguientes datos:

Input1

Input2

ExpectedResult

3

4

7

5

6

11

1200

24000

25200

Cree el archivo y agréguelo a la prueba de IU codificada.

Crear una prueba de IU codificada controlada por datos

Para crear una prueba de IU codificada controlada por datos

  1. En Explorador de soluciones, abra la solución que contiene el proyecto de prueba de IU codificada y abra la prueba de IU codificada para modificarla.

  2. Inserte el atributo DataSource directamente en el código, en la línea inmediatamente encima de su método de prueba.Puede utilizar las cadenas del origen de datos de ejemplo en la tabla siguiente copiándolas al código y creando las personalizaciones necesarias.

    Fecha de origen de datos

    Atributo de origen de datos

    CSV

    [DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|\\data.csv", "data#csv", DataAccessMethod.Sequential), DeploymentItem("data.csv"), TestMethod]

    Excel

    DataSource("System.Data.Odbc", "Dsn=Excel Files;Driver={Microsoft Excel Driver (*.xls)};dbq=|DataDirectory|\\Data.xls;defaultdir=.;driverid=790;maxbuffersize=2048;pagetimeout=5;readonly=true", "Sheet1$", DataAccessMethod.Sequential), TestMethod]

    Caso de prueba en el Team Foundation Server

    [DataSource("Microsoft.VisualStudio.TestTools.DataSource.TestCase", "http://vlm13261329:8080/tfs/DefaultCollection;Agile", "30", DataAccessMethod.Sequential), TestMethod]

    XML

    [DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML", "|DataDirectory|\\data.xml", "Iterations", DataAccessMethod.Sequential), DeploymentItem("data.xml"), TestMethod]

    SQL Express

    [DataSource("System.Data.SqlClient", "Data Source=.\\sqlexpress;Initial Catalog=tempdb;Integrated Security=True", "Data", DataAccessMethod.Sequential), TestMethod]

    Ahora, el origen de datos está disponible para usarlo en este método de prueba.La clase TestContext.DataRow se usa para obtener acceso a la fila de datos actual desde el origen de datos.Puede tener acceso a cada columna con la siguiente sintaxis:

    string paramVal = TestContext.DataRow["Input1"]
    
  3. En el Explorador de soluciones, abra el archivo CodedUITest1.cs.Realice las modificaciones siguientes en el método CodedUITestMethod1():

    1. Agregue las siguientes dos líneas de código antes de la llamada al método AddTwoNumbers para proporcionar los valores para los números que se agregan.

      this.UIMap.AddTwoNumbersParams.TextInput1EditText = 
          TestContext.DataRow["Input1"].ToString();
      this.UIMap.AddTwoNumbersParams.TextInput2EditText = 
          TestContext.DataRow["Input2"].ToString();
      
    2. Agregue inmediatamente la siguiente línea de código antes de la llamada al método AssertforAdd para ofrecer el valor del método de aserción.

      this.UIMap.AssertforAddExpectedValues.TextAnswerEditText = 
          TestContext.DataRow["ExpectedResult"].ToString();
      

      Éste es el aspecto del método de prueba de IU codificada con los parámetros y el origen de datos agregados a él:

      [DeploymentItem("DataDriven.csv"), 
          DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", 
              "|DataDirectory|\\DataDriven.csv", "DataDriven#csv", 
              DataAccessMethod.Sequential), 
          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.
          this.UIMap.AddTwoNumbersParams.TextInput1EditText = 
              TestContext.DataRow["Input1"].ToString();
          this.UIMap.AddTwoNumbersParams.TextInput2EditText = 
              TestContext.DataRow["Input2"].ToString();
          this.UIMap.AddTwoNumbers();
      
          this.UIMap.AssertforAddExpectedValues.TextAnswerEditText = 
              TestContext.DataRow["ExpectedResult"].ToString();
          this.UIMap.AssertforAdd();
      }
      
  4. Guarde los cambios en el archivo de código fuente CodedUITest1.cs.

  5. Para ejecutar la prueba de IU codificada, haga clic con el botón secundario en la prueba de IU codificada en el editor de código y elija Ejecutar pruebas unitarias.

    Una vez ejecutadas las pruebas, el resultado total de todas las iteraciones se muestra en la ventana Resultados de pruebas.Para ver los detalles de cada iteración, haga doble clic en la prueba en la ventana Resultados de pruebas.

Guía

Para obtener más información, vea Prueba para la entrega continua con Visual Studio 2012 – Capítulo 2: Pruebas unitarias: Probar el interior y Prueba para la entrega continua con Visual Studio 2012 – Capítulo 5: Automatización de pruebas del sistema

Vea también

Referencia

UIMap

Assert

Conceptos

Comprobar el código usando pruebas de interfaz de usuario codificadas

Procedimientos recomendados para las pruebas de IU codificadas

Configuraciones y plataformas compatibles con las pruebas de IU codificadas y las grabaciones de acciones

Otros recursos

Crear pruebas de IU codificadas