El fragmento de prueba executableUnit le permite recoger datos de manera precisa para los métodos que coinciden con la especificación de destino y filtro de la prueba, y que disponen de información de código fuente.
Una llamada a este tipo de fragmento se inserta antes de cada "unidad ejecutable" en el método de destino. En el caso de los métodos que coinciden con la especificación de destino y filtro de la prueba pero no tienen información de código fuente, el fragmento se inserta una vez, al principio del método.
Los fragmentos executableUnit pueden utilizar todos los tipos de elementos de datos excepto returnedObject, exceptionObject, isFinally y thisObject. Y lo que es más importante, pueden utilizar el elemento de datos executableUnitNumber, que contiene el número de la unidad ejecutable que está a punto de ejecutarse.
El número de unidades ejecutables de un método y de las tablas de líneas no incluirán las unidades ejecutables que Probekit ha insertado en el método.
Una unidad ejecutable empieza al principio de cada bloque básico y en cada código de bytes cuyo número de línea fuente es distinto del código de bytes anterior. Un bloque básico es una región de instrucciones de código de bytes que no puede ramificarse ni formar parte de ninguna ramificación. Cuando se ejecuta la primera instrucción de un bloque básico, se ejecutarán todas las instrucciones, de modo que se considera que las instrucciones constituyen un único grupo.
Los bloques básicos terminan con las instrucciones branch, call, throw y return, entre otras.
Algunas instrucciones, como por ejemplo "divide," no se consideran como final de una unidad ejecutable, a pesar de que pueden lanzar una excepción. Éste es otro ejemplo de que una unidad ejecutable no es técnicamente lo mismo que un bloque básico.
Si un método Java no tiene información de fuente asociada, se considera que todo el método sólo tiene una unidad ejecutable.
Tema padre: Consulta de Probekit
Consulta relacionada
El objeto de prueba Fragment
El objeto de prueba Data
Información relacionada
Ejemplo de ExecutableUnit