martes, 6 de agosto de 2013

ASERCIONES

Definición
Las aserciones permiten generar información acerca de las suposiciones y expectativas que maneje el desarrollo al momento de programar. Por tal motivo, las aserciones resultan de alta utilidad al momento de trabajar con el código para realizar operaciones de mantenimiento.

Ventaja: Las aserciones deben utilizarse para verificar la lógica de un sólo método o de un pequeño conjunto de métodos que estén relacionados entre sí. 

Desventaja: No deben utilizarse para comprobar todo el código desarrollado sino para verificar que se cumplan las condiciones internas.

Para activar las directivas del manejo de aserciones:

  • -ea: activa aserciones
  • -da: desactiva aserciones


Tipos de aserciones
  • Aserciones en el diseño por contrato.- pueden describir el estado en que el código empieza su ejecución (precondición), y el estado que el código espera alcanzar cuando finalice (postcondición); asimismo pueden servir de especificación para los invariantes de clase.
  • Aserciones en tiempo de ejecución.- es  utilizada para verificar que una suposición hecha por el programador durante la implementación del programa sigue siendo válida durante la ejecución del programa. 
  • Aserciones durante el ciclo de desarrollo.-  Durante el ciclo de desarrollo, el programador normalmente ejecuta su programa con las aserciones activadas. Cuando una aserción resulta falsa y se produce el correspondiente error, el programador automáticamente recibe un aviso.
  • Aserciones estáticas.- Las aserciones que son comprobadas en tiempo de compilación reciben el nombre de aserciones estáticas. Este tipo de aserciones resultan particularmente útiles en la meta programación de plantillas.
Aserciones según su expresión:

assert <expresion_booleana> ;
En cualquier caso, si la expresión booleana evaluada es falsa, se genera un error de aserción (AssertionError). Este tipo de error no debería capturarse y el programa debería finalizar de forma anormal.

assert <expresion_booleana> : <expresion_detallada> ;
En esta expresión (que puede ser de cualquier tipo) será convertida al tipo String y se utilizará para complementar el mensaje a mostrar por pantalla al momento de producirse el AssertionError.