Generación de código de prueba

Durante la fase de inicialización de una solicitud de generación de código, se crea un objeto que amplía LTTestExtensionPreferences llamando a todos los conectores que implementan el punto de ampliación com.ibm.rational.test.lt.codegen.core.codegenProtocolExtension a través del método supportFeatures().

Acerca de esta tarea

El método supportFeatures()method obtiene la lista de funciones del objeto de modelo de prueba y si determina que da soporte a estas funciones, devuelve el objeto LTTestExtensionPreferences apropiado. El objeto devuelvo implementa la interfaz com.ibm.rational.test.lt.codegen.core.config.IExtensionPreferences, que es la parte pública de la clase LTTestExtensionPreferences.

La clase com.ibm.rational.test.lt.codegen.core.CodeGenerator controla la generación de código. Esta clase utiliza un objeto EclipseCodegenConfiguration que almacena los mapas hash para conversores, los adaptadores de elementos de modelo y las plantillas especificadas por tipos de elementos de lenguaje. Los elementos de prueba del contenedor, agrupaciones de datos y otros elementos independientes específicos del protocolo tienen definidos sus propios conversores. Los elementos que no pueden existir por sí mismos se convierten en hijos de los elementos que los contienen llamando al método translateChildren() del conversor.

El generador de código determina el conversor adecuado y llama al método getTranslationFor() para el elemento de modelo adecuado.

La clase ElementAdapter con su método getAdapterForType() determina el elemento de modelo de generación de código adecuado para el elemento de modelo de comportamiento correspondiente.

Procedimiento

La conversión de elementos de prueba incluye los pasos siguientes:

  1. Los elementos de prueba se leen del modelo de comportamiento y se determina el conversor adecuado para cada uno de ellos.
  2. Se crea el objeto de elemento de lenguaje para el elemento y su plantilla.
  3. Los atributos de elemento se leen del modelo y sus parámetros correspondientes se sustituyen en la plantilla.

Resultados

La generación de los elementos de lenguaje de código es recurrente y genera el árbol de elementos de lenguaje que contiene todos los niveles de los elementos de prueba del modelo de ejecución, con, cada uno de ellos, el objeto de plantilla del que se ha creado una instancia y que contiene todas las sustituciones de prueba solicitadas. El árbol se implementa utilizando los contenedores de elementos de lenguaje como sus nodos. Las sustituciones de plantillas para los contenedores de elementos de lenguaje por parámetros que definen múltiples elementos las procesa la clase LangElemCollectionValue.

Comentarios