El objeto de prueba Fragment

El objeto de prueba Fragment es una especificación de la lógica de una prueba. Contiene el código fuente Java que se ejecutará.

Se requiere como mínimo un objeto Fragment. Contiene el objeto Code, así como todos los elementos de datos a los que hace referencia el código fuente en el objeto Code. Una prueba puede contener más de un objeto Fragment, pero dos objetos Fragment no pueden tener el mismo type.

El objeto Fragment incluye la siguiente propiedad:
Propiedad Descripción
type Obligatoria. Para las pruebas de método, debe ser entry, exit, catch, staticInitializer o executableUnit. Para las pruebas de sitio de llamada, debe ser beforeCall o afterCall. No pueden mezclar fragmentos de método y fragmentos de sitio de llamada en una misma prueba.
La tabla siguiente muestra y describe los tipos de fragmentos e indica el tipo de prueba en que puede utilizarse cada uno de ellos.
Tipo de fragmento Tipo de prueba Descripción
entry Método Los fragmentos entry se ejecutan en la entrada de método. Los fragmentos entry no se ejecutarán para los métodos que Probekit ha insertado en la clase.
exit Método Los fragmentos exit se ejecutan en la salida de método; puede ser una salida normal, cuando el método lanza una excepción, o bien cuando una excepción lanzada se propaga fuera del método. Los fragmentos exit no se ejecutarán para los métodos que Probekit ha insertado en la clase.
catch Método Los fragmentos catch se ejecutan al principio de una cláusula catch del método, o bien al principio de una cláusula finally que se ejecuta como resultado de una excepción.
staticInitializer Método Los fragmentos staticInitializer se ejecutan dentro del inicializador de cada clase probada. Si la clase todavía no tiene un inicializador estático, se creará uno. Para obtener más información, consulte la sección El fragmento de prueba staticInitializer.
executableUnit Método Los fragmentos executableUnit se ejecutan antes de cada unidad ejecutable de código en los métodos que coinciden con la especificación de destino y filtro de la prueba, y para los que se dispone de código fuente. Si el método no tiene información de línea fuente, aparecerá como si tuviese una única unidad ejecutable, con el número cero. Para obtener más información, consulte la sección El fragmento de prueba executableUnit.
beforeCall sitio de llamada Los fragmentos beforeCall se ejecutan en el método llamante inmediatamente antes de que se llame al método de destino. No son válidos para pruebas de método.
afterCall sitio de llamada Los fragmentos afterCall se ejecutan en el método llamante inmediatamente después de la salida del método de destino; puede ser una salida normal o cuando el método de destino lanza una excepción. No son válidos para pruebas de método.
Notas:
  • Cuando las pruebas se aplican a métodos que están declarados como synchronized, no se garantiza que el código de los fragmentos entry, exit y executableUnit estará protegido de la ejecución simultánea en varias hebras. Por ejemplo, un fragmento entry y los primeros fragmentos executableUnit podrían ejecutarse antes de que la lógica de sincronización de método obtenga un bloqueo, y un fragmento exit podría ejecutarse después de que se haya liberado el bloqueo.
  • Una prueba puede tener varios fragmentos que se aplican a la misma ubicación de un método; por ejemplo, un fragmento entry y la primera ubicación executableUnit. Otro ejemplo es un fragmento catch y su ubicación executableUnit asociada, ya que las cláusulas catch de manejo de excepciones siempre representan el inicio de una nueva unidad ejecutable. En estos casos, el código del fragmento executableUnit se ejecutará después del código del fragmento entry o catch. Una consecuencia es que los fragmentos entry, si están presentes, siempre se ejecutarán antes que otros tipos de fragmentos.
Ejemplo
<fragment type="entry">
   <data . . . />
   <code>
      . . . 
   </code>
</fragment>

Contenido por
El objeto Probe

Tema padre: Consulta de Probekit

Conceptos relacionados
Pruebas de método frente a pruebas de sitio de llamada

Copyright IBM Corporation y otras empresas 2000, 2004.