Guía de aprendizaje: acceder a una agrupación de datos desde una prueba JUnit


Objetivos:

Crear y acceder a una agrupación de datos desde una aplicación de prueba de ejemplo utilizando TPTP (Eclipse Test and Performance Tools Platform.)

Tiempo necesario

1 hora

Antes de empezar

Antes de empezar esta guía de aprendizaje, debe

  1. Instalar Eclipse y TPTP (Eclipse Test and Performance Tools Platform.)
  2. Tener un conocimiento básico de la ejecución de pruebas de JUnit. Para obtener más información acerca de las pruebas de JUnit, vaya a www.junit.org.
  3. Configurar y ejecutar el Agent Controller correspondiente a la versión de TPTP. Para obtener más información, consulte Getting started with the Agent Controller.


Descripción

En esta guía de aprendizaje, puede crear y probar una aplicación llamada MyShoppingCart. Mediante TPTP (Eclipse Test and Performance Tools Platform) puede desarrollar pruebas de JUnit y crear una agrupación de datos para proporcionar datos al entorno de prueba.

Esta guía de aprendizaje le guía a través de los procedimientos siguientes:

  1. Crear una aplicación de usuario de ejemplo
  2. Configurar una suite de pruebas de TPTP
  3. Crear una agrupación de datos e inicializar los datos de prueba
  4. Modificar los casos de prueba para hacer referencia a una agrupación de datos

Crear una aplicación de usuario de ejemplo


En este procedimiento, se desarrolla la clase MyShoppingCart. En los procedimientos siguientes, utilizará TPTP para desarrollar un entorno de prueba correspondiente.
  1. Crear un proyecto Java de Eclipse.
    • En el menú Archivo elija Archivo > Nuevo > Proyecto... Aparece el diálogo Proyecto nuevo.
    • En la lista Asistentes, seleccione Proyecto Java y pulse Siguiente. Aparece la página Crear un proyecto Java.
    • Teclee datapoolExample en Nombre de proyecto y pulse Finalizar. El proyecto datapoolExample aparece en la vista Navegador.
  2. Crear la clase MyShoppingCart.
    • En la vista Navegador, pulse con el botón derecho el proyecto datapoolExample y elija Nuevo > Clase. Aparece el diálogo Clase Java nueva.
    • Teclee MyShoppingCart en el campo Nombre.
    • Quite la marca de la opción para crear el método main public static void main(String[] args).
    • Pulse Finalizar. El archivo MyShoppingCart.java aparece en el editor Java.
    • Teclee lo siguiente en el código fuente de MyShoppingCart:
      import java.util.*;
      
      public class MyShoppingCart {
      
      	public Hashtable myFlowers;
      	
      	public MyShoppingCart() {
      	    
      		myFlowers = new Hashtable();
      		myFlowers.put("Orchid", new Double(5.99));
      		myFlowers.put("Tulip", new Double(1.99));
      		myFlowers.put("White Poinsee", new Double(6.99));
      		myFlowers.put("White Rose", new Double(9.99));
      		myFlowers.put("Geraniums", new Double(4.99));		
      	}
      	
      	public double itemCost(String itemName, int itemQuantity)
      	{
      	     Double price = (Double)myFlowers.get(itemName);
      		
      	     if (price != null) {
      	    	 return price.doubleValue()*itemQuantity;
      	     }
      	     
      	     return -1;	    	 	    	 	     		
      	}
      }
    • Guarde MyShoppingCart.java. En el menú Archivo, elija Archivo > Guardar.

Configurar una suite de pruebas de TPTP


En este procedimiento, puede desarrollar una suite de pruebas para la clase MyShoppingCart. Mediante TPTP (Eclipse Test and Performance Tools Platform), puede desarrollar una prueba JUnit para el método itemCost.
  1. Abrir la perspectiva Prueba.
    • En el menú Archivo, elija Ventana > Abrir perspectiva > Otras.
    • Seleccione Prueba y pulse Aceptar. Aparece el Navegador de pruebas.
  2. Crear una Prueba JUnit de TPTP.
    • En el Navegador de pruebas, pulse con el botón derecho el proyecto datapoolExample y elija Nuevo > Elemento de prueba...
    • En el diálogo Elemento de pruebas, seleccione Prueba JUnit de TPTP y pulse Siguiente. Aparece el diálogo Caso de prueba nuevo, en el que se le solicita que añada bibliotecas de JUnit. Pulse para añadir las bibliotecas de JUnit.
    • En la página Código fuente de prueba JUnit nueva, teclee shoppingCartTest_src en el campo Nombre. En la sección Seleccionar cómo se edita el comportamiento de prueba, elija la opción En el editor de pruebas (el valor predeterminado.)
    • Pulse Finalizar. Aparece el editor de pruebas JUnit de TPTP mostrando la suite de pruebas shoppingCartTest_src. La pestaña Visión general incluye una descripción de prueba, información de código fuente y un listado de métodos de prueba. Actualmente, no hay métodos de prueba definidos. Para esta guía de aprendizaje, el editor de pruebas JUnit de TPTP genera apéndices de método de forma que la opción Implementar comportamiento de prueba como código de la sección Información de código fuente debe estar deseleccionada. Para obtener más información, consulte la sección Editor de suites de pruebas JUnit.
  3. Añadir los métodos testItemCost y testShoppingCartConstructor.
    • En la pestaña Métodos de prueba, pulse Añadir. Aparece un nombre predeterminado para la prueba.
    • Añada el método testItemCost. En el campo Nombre, teclee testItemCost para el nombre de prueba nuevo. En el campo Descripción, teclee Prueba para el método MyShoppingCart.itemCost(String, int).
    • Añada el método testShoppingCartConstructor. En la pestaña Métodos de prueba, pulse Añadir. En el campo Nombre, teclee testShoppingCartConstructor para el nombre de prueba nuevo. En el campo Descripción, teclee Prueba para el constructor MyShoppingCart.
  4. Configurar el comportamiento de ejecución de prueba.
    • Añada un bucle de ejecución de prueba. En la pestaña Comportamiento, pulse Añadir... > Bucle. En el campo Nombre, teclee Loop_MyShoppingCart. En el campo Número de iteraciones, teclee 1 (el valor predeterminado.)
    • Añada una invocación de testShoppingCartConstructor. Seleccione Loop_MyShoppingCart y pulse Añadir... > invocación. Aparece el diálogo Invocación de prueba. Seleccione testShoppingCartConstructor y pulse Aceptar.
    • Añada una invocación de testItemCost. Seleccione Loop_MyShoppingCart y pulse Añadir... > invocación. Aparece el diálogo Invocación de prueba. Seleccione testItemCost y pulse Aceptar.
    • Guarde la suite de pruebas. En el menú Archivo, elija Archivo > Guardar.

      Nota: el mandato Guardar hace que el editor de pruebas JUnit de TPTP cree apéndices de método de prueba en shoppingCartTest_src.java.
  5. Especificar código para los métodos de prueba JUnit generados testShoppingCartConstructor y testItemCost.
    • Abra la perspectiva Java. En el menú Archivo elija Ventana > Abrir perspectiva > Otras... > Java.
    • Abrir shoppingCartTest_src.java. En el Navegador, abra la carpeta del proyecto datapoolExample y efectúe una doble pulsación sobre shoppingCartTest_src.java. El contenido de shoppingCartTest_src.java aparece en el editor Java, incluyendo el código para configurar y ejecutar la suite de pruebas y los métodos de apéndice para testShoppingCartConstructor y testItemCost.
    • Teclee el código siguiente para el método testShoppingCartConstructor.
      public void testShoppingCartConstructor()
      throws Exception
      {
      	MyShoppingCart cart = new MyShoppingCart();
      	Double priceOrchid = (Double)cart.myFlowers.get("Orchid");
      	Double priceTulip = (Double)cart.myFlowers.get("Tulip");
      	
      	assertTrue(priceOrchid.doubleValue() == 5.99);
      	assertTrue(priceTulip.doubleValue() == 1.99);
      }
    • Teclee el código siguiente para el método testItemCost.
      public void testItemCost()
      throws Exception
      {
      	MyShoppingCart cart = new MyShoppingCart();
      	double priceForTwo = cart.itemCost("Orchid", 2);
      	
      	assertTrue(priceForTwo == 11.98);
      }
    • Guarde shoppingCartTest_src.java. En el menú Archivo, elija Archivo > Guardar.
  6. Abra la perspectiva Prueba y cree un despliegue de prueba. Para obtener un ejemplo, consulte la sección Crear un despliegue de prueba.
  7. Ejecutar la prueba utilizando el despliegue personalizado.
    • En el Navegador de prueba, pulse con el botón derecho la suite de pruebas shoppingCartTest_src y elija Ejecutar como > Ejecutar.... Aparece el diálogo Ejecutar configuración.
    • En el panel Configuraciones, seleccione Prueba y a continuación Nueva.
    • En el panel izquierdo de Ejecutar configuración (Seleccionar prueba a ejecutar), expanda datapoolExample y elija la suite de pruebas shoppingCartTest_src.
    • En el panel de la derecha de Ejecutar configuración, seleccione la sección del despliegue creado.
    • En la pestaña Anotaciones de prueba, quite la marca de la opción Utilizar valores predeterminados y seleccione la carpeta del proyecto datapoolExample para la ubicación.
    • Pulse Ejecutar para lanzar la prueba.
  8. Efectúe una doble pulsación sobre las anotaciones de prueba de shoppingCartTest_src que aparecen en el Navegador de prueba. Aparecen las anotaciones de prueba de shoppingCartTest_src. Seleccione la pestaña Eventos para ver los detalles de la prueba. Debe ver los eventos siguientes: inicio de la suite de pruebas, inicio de Loop_MyShoppingCart, inicio de prueba, veredicto de prueba, detención de prueba, segundo inicio de prueba, segundo veredicto de prueba, segunda detención de prueba, detención de bucle, veredicto de suite de pruebas y detención de suite de pruebas.

Crear una agrupación de datos e inicializar los datos de prueba


En este procedimiento se crea una agrupación de datos simple para almacenar datos de prueba. Con el editor de agrupaciones de datos, se definen elementos estructurales de una agrupación de datos, incluyendo variables (columnas), registros (filas) y clases de equivalencia (grupos de registros relacionados.)
  1. Crear un archivo CSV (delimitado por comas) que incluya los datos de la prueba. Normalmente, puede exportar datos de una aplicación de hoja de cálculo o de una base de datos a formato CSV. Sin embargo, en esta guía de aprendizaje, se teclean los datos en un editor de texto.
    • Teclee lo siguiente en un editor de texto.
      ,ModelNumber::String,Description::String,Price::Double
      flowers,F0001,Orchid,5.99
      flowers,F0002,Tulip,1.99
      flowers,F0003,White Poinsee,6.99
      flowers,F0004,White Rose,9.99
      flowers,F0005,Geraniums,4.99
    • Guarde el archivo como flowerData.csv en una ubicación externa temporal.
  2. En Eclipse, abra la perspectiva Prueba.
    • En el menú Archivo, elija Ventana > Abrir perspectiva > Otras.
    • Seleccione Prueba y pulse Aceptar. Aparece el Navegador de pruebas.
  3. En el Navegador de pruebas, pulse un proyecto con el botón derecho y seleccione Nuevo > Elemento de prueba... Aparece el diálogo Elemento de prueba nuevo.
  4. En el recuadro de lista Asistentes, expanda la carpeta Activos de prueba y seleccione Agrupación de datos.
  5. Pulse Siguiente Aparece el diálogo Agrupación de datos nueva.
  6. Elija la carpeta del proyecto de agrupación de datos y el nombre de la agrupación de datos. En la lista de proyectos existentes, seleccione el proyecto datapoolExample. En el campo Nombre, teclee shoppingCartDatapool. Pulse Siguiente para continuar y vuelva a pulsar Siguiente para abrir la página de importación de CSV (delimitado por comas.)
  7. Importe el archivo CSV flowerData.csv.
    • En el campo Archivo CSV, pulse Examinar y navegue hasta flowerData.csv.
    • Seleccione la opción La primera fila contiene los nombres de las variables y los tipos sugeridos. La primera fila de flowerData.csv contiene cabeceras de columna y tipos.
    • Seleccione la opción La primera columna contiene los nombres de las clases de equivalencia. Las clases de equivalencia agrupan datos relacionados. La primera columna flowerData.csv especifica una sola clase de equivalencia llamada flowers.
  8. Pulse Finalizar. Si especificó dimensiones iniciales de la agrupación de datos que pueden causar un conflicto con las dimensiones de archivo CSV, aparece un diálogo. Pulse para utilizar las dimensiones del archivo CSV. Pulse No para utilizar las dimensiones iniciales especificadas (y probablemente truncar los datos del archivo CSV.) Aparece el editor de agrupaciones de datos mostrando los datos contenidos en la clase de equivalencia de flowers.

    Para obtener información detallada acerca dé cómo crear una agrupación de datos, consulte la sección Crear una agrupación de datos.


Modificar los casos de prueba para hacer referencia a una agrupación de datos


En este procedimiento, utilice la API de agrupación de datos para sustituir valores de prueba codificados sin posibilidad de modificación referencias a columnas de agrupación de datos.

Añadir bibliotecas necesarias para la API de agrupación de datos

La API de agrupación de datos necesita varias bibliotecas de TPTP y EMF (Eclipse Modeling Framework.) En este procedimiento, se añaden las bibliotecas a la vía de acceso de construcción Java.
  1. Abra la perspectiva Java. En el menú Archivo elija Ventana > Abrir perspectiva > Java.
  2. Abra las propiedades del proyecto datapoolExample. En la ventana Navegador o Explorador de paquetes, pulse con el botón derecho la carpeta datapoolExample y elija Propiedades. Aparece el diálogo Propiedades de datapoolExample.
  3. Añadir tptp-models.jar a la vía de acceso de construcción Java.
    • En el panel izquierdo, seleccione Vía de acceso de construcción Java.
    • En el panel de la derecha, seleccione la pestaña Bibliotecas y pulse Añadir variable..., aparece el diálogo Entrada de vía de acceso de clases de variables nueva.
    • Seleccione la variable ECLIPSE_HOME y pulse Extender... Aparece el diálogo Extensión de variable. Abra la carpeta plugins > org.eclipse.tptp.platform.models_Versión y seleccione tptp-models.jar, donde Versión es el número de versión de TPTP.
    • Pulse Aceptar para añadir la biblioteca.
  4. Añadir org.eclipse.emf.common_Versión.jar a la vía de acceso de construcción de Java, donde Versión es la versión de EMF.
    • En el diálogo Entrada de vía de acceso de clases de variables nueva, seleccione la variable ECLIPSE_HOME y pulse Extender...
    • Abra la carpeta plugins y seleccione org.eclipse.emf.common_Versión.jar, donde Versión es la versión de EMF.
    • Pulse Aceptar para añadir la biblioteca.
  5. Añadir org.eclipse.emf.ecore_Versión.jar a la vía de acceso de construcción de Java, donde Versión es la versión de EMF.
    • En el diálogo Entrada de vía de acceso de clases de variables nueva, seleccione la variable ECLIPSE_HOME y pulse Extender...
    • Abra la carpeta plugins y seleccione org.eclipse.emf.ecore_Versión.jar, donde Versión es la versión de EMF.
    • Pulse Aceptar para añadir la biblioteca.
  6. Añadir org.eclipse.core.runtime_Versión.jar a la vía de acceso de construcción Java, donde Versión es la versión de la plataforma Eclipse.
    • En el diálogo Entrada de vía de acceso de clases de variables nueva, seleccione la variable ECLIPSE_HOME y pulse Extender...
    • Abra la carpeta plugins y seleccione org.eclipse.core.runtime_Versión.jar, donde Versión es la versión de la plataforma Eclipse.
    • Pulse Aceptar para añadir la biblioteca.
  7. Pulse Aceptar para cerrar el diálogo Propiedades.


Utilizar la API de agrupación de datos

En este procedimiento se modifica la clase shoppingCartTest_src y el método testShoppingCartConstructor para utilizar shoppingCartDatapool.
  1. Si es necesario, abra la perspectiva Java. En el menú Archivo elija Ventana > Abrir perspectiva > Java.
  2. Abrir shoppingCartTest_src.java. En el Navegador, abra la carpeta del proyecto datapoolExample y efectúe una doble pulsación sobre shoppingCartTest_src.java. El contenido de shoppingCartTest_src.java aparece en el editor Java.
  3. Añadir las sentencias de importación siguientes a la clase shoppingCartTest_src.
    import org.eclipse.hyades.models.common.datapool.impl.*;
    import org.eclipse.hyades.execution.runtime.datapool.*;
  4. Declarar una instancia de la clase IDatapoolIterator. Esta instancia de clase se inicializará en el código de configuración utilizado en los métodos de prueba.
    public class shoppingCartTest_src extends HyadesTestCase {
    	
    	IDatapoolIterator dpIterator;
    	
    	//...
  5. Modificar el método setUp para inicializar la agrupación de datos. En un entorno de prueba JUnit TPTP, el método setUp proporciona un arreglo común. Puede utilizar setUp para inicializar variables de prueba comunes. Nota: especifique la vía de acceso de espacio de trabajo totalmente calificada en el lugar de <workspace>, en el constructor java.io.File.
    protected void setUp() throws Exception {
    	// Inicializar la fábrica de agrupación de datos
    	IDatapoolFactory dpFactory = new Common_DatapoolFactoryImpl();
    		
    	// Cargar la agrupación de datos shoppingCartDatapool
    	IDatapool datapool = dpFactory.load(
    			new java.io.File("<workspace>\\datapoolExample\\shoppingCartDatapool.datapool"),
    			false);
    		
    	// Crear un iterador para atravesar la agrupación de datos
    	dpIterator = dpFactory.open(datapool,"org.eclipse.hyades.datapool.iterator.DatapoolIteratorSequentialPrivate");
    	
    	// Inicializar la agrupación de datos para atravesar la primar clase de equivalencia.
    	dpIterator.dpInitialize(datapool,0);
    }
    Notas:
    • El segundo parámetro del método de carga de IDatapoolFactory indica si se comparte la instancia de la agrupación de datos. Si el valor es true, se comprueba la existencia de una copia de la agrupación de datos en la memoria caché de la agrupación de datos. Si el valor es false, la agrupación de datos es una instancia privada. La modificación de una instancia de agrupación de datos compartida solo puede afectar a otros usuarios y solo es recomendable para entornos confinados.
    • Si desea editar programáticamente una importación de agrupación de datos org.eclipse.hyades.edit.datapool.
    • El segundo parámetro del método abierto IDatapoolFactory representa el tipo de iterador. Para las agrupaciones de datos compartidas, utilice DatapoolIteratorSequentialPrivate.
  6. Modificar el método testShoppingCartConstructor para utilizar shoppingCartDatapool.
    public void testShoppingCartConstructor()
    throws Exception
    {
    	MyShoppingCart cart = new MyShoppingCart();
    		
    	// Atravesar la agrupación de datos...
    	// Probar si el constructor inicializa adecuadamente cada registro de flor
    	while(!dpIterator.dpDone())
    	{
    		String Description = dpIterator.dpCurrent().getCell("Description").getStringValue();
    		double datapoolPrice = dpIterator.dpCurrent().getCell("Price").getDoubleValue();
    		
    		// Probar si la flor se contabiliza en la aplicación
    		Double applicationPrice;
    		assertNotNull(applicationPrice = (Double)cart.myFlowers.get(Description));
    		
    		// Probar que el precio de la aplicación iguala el precio de la agrupación de datos
    		assertTrue(applicationPrice.doubleValue() == datapoolPrice);
    		
    		dpIterator.dpNext();
    	}
    }
  7. Guardar shoppingCartTest_src.java. En el menú Archivo, elija Archivo > Guardar.
  8. Añadir la agrupación de datos a testArtifact.
    • Abra la perspectiva Prueba. En el Navegador de prueba, efectúe una doble pulsación sobre testDeployment para abrirlo en el editor.
    • En la pestaña Pares, seleccione testAsset y pulse Abrir...
    • En la pestaña Activos de prueba, pulse Añadir.... Seleccione las agrupaciones de datos y pulse Aceptar. Guarde el activo.
  9. Ejecutar la prueba utilizando el despliegue personalizado.
    • Abra la perspectiva Prueba. En el Navegador de prueba, pulse con el botón derecho la suite de pruebas shoppingCartTest_src y elija Ejecutar como > Ejecutar.... Aparece el diálogo Ejecutar configuración.
    • En el panel izquierdo de Ejecutar configuración, elija la suite de pruebas shoppingCartTest_src.
    • En el panel derecho de Ejecutar configuración, seleccione el despliegue creado en la sección Antes de empezar.
    • En la pestaña Anotaciones de prueba, quite la marca de la opción Utilizar valores predeterminados y seleccione la carpeta del proyecto datapoolExample para la ubicación.
    • Pulse Ejecutar para lanzar la prueba.
  10. Efectúe una doble pulsación sobre las anotaciones de prueba de shoppingCartTest_src nuevas que aparecen en el Navegador de prueba. Aparecen las anotaciones de prueba de shoppingCartTest_src. Seleccione la pestaña Eventos para ver los detalles de los resultados de la prueba.


Conceptos relacionados
Tareas y conceptos comunes de las pruebas

Tareas relacionadas
Crear un despliegue de prueba
Proporcionar pruebas con dtos variables
Crear manualmente una prueba JUnit

(C) Copyright IBM Corporation 2000, 2006. Reservados todos los derechos.