CER le permite producir documentación HTML relacionada con una sesión ("SessionDoc").
Esta documentación proporciona un registro de todos los objetos de regla creados durante la sesión y, cuando se utiliza conjuntamente con las pruebas, puede ser una potente ayuda de depuración.
Puede ser útil utilizar el punto de enlace tearDown de JUnit para forzar que todos los métodos de prueba de la clase de prueba produzcan su SessionDoc:
@Override protected void tearDown() throws Exception { /* * Escribir SessionDoc, en un directorio denominado como el * método de prueba. */ final File sessionDocOutputDirectory = new File("./gen/sessiondoc/" + this.getName()); sessionDoc.write(sessionDocOutputDirectory); super.tearDown(); }
A continuación se muestra la página SessionDoc principal para una prueba testSelfMadeMillionaireScenario:
Algunos detalles clave en esta página son:
Al pulsar en el enlace para el único conjunto de reglas FlexibleRetirementYearRuleSet, se muestran los objetos de regla:
Esta página muestra:
Al pulsar en el enlace de detalles para el único objeto de regla FlexibleRetirementYear se muestra su SessionDoc:
En la parte superior (no se muestra) están los detalles de resumen para el objeto de regla y, a continuación, se lista cada atributo de regla en el objeto de regla, con los detalles siguientes:
Nombre del atributo de regla;
Tipo del atributo de regla declarado en el conjunto de reglas. El valor de tiempo de ejecución real puede ser de un subtipo de este tipo declarado;
El estado del valor, es decir, si era:
Calculado por reglas;
Especificado explícitamente por el código de cliente, sustituyendo cualquier cálculo definido o inicializado1como parte de una expresión create;
No especificado explícitamente, no calculado durante la ejecución de reglas (porque ningún otro cálculo o prueba ha solicitado nunca el valor); o
Se ha producido un error durante el cálculo del valor (consulte los registros de aplicación o la salida de consola para obtener detalles y la pila de cálculos del error).
Representación de visualización del valor. Si el valor no se ha calculado nunca (NOT_YET_CALCULATED) o es erróneo (ERROR), se visualizará "?". Si el valor es un objeto de regla, el valor se mostrará como un hiperenlace navegable para que pueda ver los detalles de dicho objeto de regla y
La derivación de RuleDoc del atributo (sin enlaces). Para obtener más información sobre RuleDoc, consulte RuleDoc.
Enlaces a los atributos que se han utilizado para calcular este valor.
(Opcional) Enlaces a los atributos que utilizaban este valor al calcular sus valores.
Si está ejecutando SessionDoc en una base de datos grande, puede ser útil suprimir la salida de los enlaces "utilizado por", porque la inclusión de enlaces de este tipo puede hacer que SessionDoc produzca un gran número de objetos de regla. Para suprimir la salida de los enlaces "utilizado por", utilice curam.creole.execution.session.SessionDoc.write(File, boolean), pasando false como el segundo parámetro.
En el caso de objetos de regla que están almacenados en tablas de base de datos de CER, puede crear SessionDoc para estos objetos de regla almacenados ejecutando la clase curam.creole.util.DumpOutRuleObjects, donde un único argumento es el nombre de un directorio en el que se debe crear el SessionDoc. El programa de utilidad DumpOutRuleObjects recupera todos los objetos de regla de las tablas de base de datos de CER y, por lo tanto, se "recuperará" la acción para cada objeto de regla externa. Los objetos de regla interna se crearán (porque no están almacenados) y por lo tanto mostrarán una acción de "creado".
Puede examinar los objetos de regla para ver los valores de los atributos calculados en objetos de regla, junto con una visión técnica de cómo se llegó a cualquier resultado de cálculo.