Gerando Código de Teste

Durante a fase de inicialização de um pedido de geração de código, um objeto que estende a classe LTTestExtensionPreferences é criado ao chamar todos os plug-ins que implementam o ponto de extensão com.ibm.rational.test.lt.codegen.core.codegenProtocolExtension através de seu método supportFeatures().

Sobre Esta Tarefa

O supportFeatures()method obtém a lista de recursos do objeto modelo de teste e, se determinar que suporta esses recursos, retorna o objeto LTTestExtensionPreferences apropriado. O objeto retornado implementa a interface com.ibm.rational.test.lt.codegen.core.config.IExtensionPreferences, que é a parte pública da classe LTTestExtensionPreferences.

A geração de códigos é controlada pela classe com.ibm.rational.test.lt.codegen.core.CodeGenerator. Essa classe utiliza um objeto EclipseCodegenConfiguration que armazena os mapas de hash para conversores, os adaptadores de elementos de modelo e os modelos determinados por tipos de elementos de linguagem. Os elementos de teste do contêiner, os datapools e alguns outros elementos independentes específicos do protocolo possuem seus próprios conversores definidos. Os elementos que não podem existir sozinhos são convertidos como filhos dos elementos que os contêm chamando o método translateChildren() do conversor.

O gerador de código determina o conversor apropriado e chama seu método getTranslationFor() para o elemento de modelo fornecido.

A classe ElementAdapter com seu método getAdapterForType() determina o elemento de modelo da geração de códigos apropriada para o elemento Modelo de Comportamento fornecido.

Procedimento

A conversão de elementos de teste envolve as etapas a seguir:

  1. Os elementos de teste são lidos no modelo de comportamento e o conversor apropriado é determinado para cada um deles.
  2. O objeto de elemento de linguagem é criado para o elemento e seu modelo é determinado.
  3. Os atributos do elemento são lidos no modelo e seus parâmetros correspondentes são substituídos no modelo.

Resultados

A geração dos elementos de linguagem de código é recursiva e gera a árvore de elementos de linguagem contendo todos os níveis dos elementos de teste do modelo de execução, cada um com o objeto de modelo instanciado e contendo todas as substabelecimentos de teste solicitadas. A árvore é implementada utilizando-se os contêineres de elementos de linguagem como seus nós. As substabelecimentos de modelos para os contêineres de elementos de linguagem para parâmetros que definem vários elementos são processadas pela classe LangElemCollectionValue.

Feedback