Acceder a una agrupación de datos desde una prueba de Hyades

Puede utilizar una agrupación de datos desde una prueba Hyades efectuando llamadas a la API de agrupación de datos desde código Java generado de la prueba.

La agrupación de datos utilizada debe existir previamente.

También debe existir el código Java de la prueba desde la que va a utilizar una agrupación de datos. Genere el código pulsando la prueba con el botón derecho del ratón y seleccionando Generar.

Añada estos archivos jar a la vía de acceso de construcción Java. [DIR_ECLIPSE] es el directorio de instalación de Eclipse:
  • [DIR_ECLIPSE]/plugins/org.eclipse.hyades.models.common_3.0.0/common_model.jar
  • [DIR_ECLIPSE]/plugins/org.eclipse.hyades.test.datapool_3.0.0/datapool_api.jar
  • [DIR_ECLIPSE]/plugins/org.eclipse.emf.ecore_2.0.0/runtime/ecore.jar
  • [DIR_ECLIPSE]/plugins/org.eclipse.emf.common_2.0.0/runtime/common.jar
A continuación se indican los pasos necesarios para utilizar una agrupación de datos desde código Java de una prueba. A continuación de los pasos figura de inmediato un ejemplo.
  1. Abra la prueba en el editor Java. El código fuente de la prueba no es visible en la perspectiva Prueba. Para ver la prueba, abra la perspectiva Java y desplácese a la carpeta fuente (por omisión, src/test).
  2. Al principio de la prueba, añada sentencias import para las clases de API de agrupación de datos.
  3. En el cuerpo de la prueba, localice la clase post que contiene el valor que desee sustituir por valores de una columna de la agrupación de datos.
  4. Al principio de la clase post, añada código que cree una referencia de instancia a la agrupación de datos e inicie un bucle de iteraciones a través de ella.
  5. Localice la línea que contiene el valor que debe sustituirse y añada código que sustituya el valor por una referencia a la columna de agrupación de datos adecuada.
  6. Al final de la clase post, justo antes del corchete de cierre, cierre el bucle de iteraciones de la agrupación de datos.

El siguiente fragmento de código, que ilustra el paso 2, muestra las sentencias import que aparecen al principio de una prueba Hyades generada. Las líneas en negrita del final corresponden a las sentencias import de la agrupación de datos que debe añadir a la prueba.

package test;
import java.util.Random;
import junit.extensions.RepeatedTest;
import junit.framework.Test;
import org.eclipse.hyades.test.common.junit.DefaultTestArbiter;
import org.eclipse.hyades.test.common.junit.HyadesTestCase;
import org.eclipse.hyades.test.common.junit.HyadesTestSuite;
import org.eclipse.hyades.test.http.runner.HttpCookieCache;
import org.eclipse.hyades.test.http.runner.HttpExecutor;
import org.eclipse.hyades.test.http.runner.HttpHeader;
import org.eclipse.hyades.test.http.runner.HttpRequest;
import org.eclipse.hyades.test.http.runner.HttpResponse;
import org.eclipse.hyades.test.http.runner.internal.util.HttpTestUtil;
import org.eclipse.hyades.models.common.datapool.impl.Common_DatapoolFactoryImpl;
import org.eclipse.hyades.execution.runtime.datapool.*;

El siguiente fragmento de código, que ilustra el paso 3, se ha tomado de una prueba generada en la que el comprobador se ha dirigido a www.amazon.com y ha buscado un libro llamado atonement.

	public void c8postwww_amazon_com() throws Exception {
		HttpRequest request = new HttpRequest();
		request.setMethod("POST");
		request.setVersion("1.1");
		request.setHost("www.amazon.com");
		request.setPort(80);
		request
				.setAbsolutePath("/exec/obidos/search-handle-form/102-5005957-7048952");
		request
				.setBody("url=index%3Dstripbooks=atonement=10=6");

En el siguiente fragmento de código, que ilustra los pasos 4 y 5, las líneas en negrita muestran cómo modificar el código de prueba generado para que una columna llamada title de una agrupación de datos llamada books sustituya el valor atonement. En la segunda línea, en lugar de "nombre de vía de acceso de books.datapool", especifique el nombre de vía de acceso totalmente calificado de la agrupación de datos books.

	public void c8postwww_amazon_com() throws Exception {

  IDatapoolFactory dpFactory = new Common_DatapoolFactoryImpl();
     IDatapool datapool = dpFactory.load(new File("pathname of books.datapool"), false); //false - nonshared
     IDatapoolIterator iter = dpFactory.open(datapool, 
                 "org.eclipse.hyades.datapool.DatapoolIteratorSequentialPrivate");
     iter.dpInitialize(datapool, -1);  //-1 - go through all ECs


     while (!iter.dpDone())
     {

		   HttpRequest request = new HttpRequest();
		   request.setMethod("POST");
		   request.setVersion("1.1");
		   request.setHost("www.amazon.com");
		   request.setPort(80);
		   request
			.setAbsolutePath("/exec/obidos/search-handle-form/102-5005957-7048952");
	// request
		//	.setBody("url=index%3Dstripbooks=atonement=10=6");

    //new 
        String title = iter.dpCurrent().getCell("title").getStringValue();
        iter.dpNext();
        String body = "url=index%3Dstripbooks=" +  title + " =10=6";
        request.setBody(body);		
        //end new
        // Lines from test ommitted ...
        }// Close loop through datapool

Tema padre: Suministrar pruebas con datos variables

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