CER vous permet de publier une documentation HTML relative à une session ("SessionDoc").
Cette documentation fournit un enregistrement de tous les objets de règles créés au cours d'une session, et lorsqu'elle est utilisée en combinaison avec vos tests, elle peut représenter une aide précieuse pour le débogage.
Il peut être utile de recourir au point d'ancrage tearDown de JUnit pour forcer toutes les méthodes de test de votre classe de test à élaborer leur documentation SessionDoc :
@Override protected void tearDown() throws Exception { /* * Ecriture de SessionDoc, sur un répertoire nommé d'après la méthode * de test. */ final File sessionDocOutputDirectory = new File("./gen/sessiondoc/" + this.getName()); sessionDoc.write(sessionDocOutputDirectory); super.tearDown(); }
Voici la page SessionDoc principale d'un test testSelfMadeMillionaireScenario :
Voici certains détails clés de cette page :
Le fait de cliquer sur le lien pour le jeu de règles FlexibleRetirementYearRuleSet seul affiche ses objets de règles :
Cette page affiche :
Le fait de cliquer sur le lien des détails de l'objet de règle FlexibleRetirementYear seul affiche sa documentation SessionDoc :
En haut (non affiché), on trouve les détails récapitulatifs de l'objet de règle, puis chaque attribut de règle figurant sur l'objet de règle est répertorié, avec les détails suivants :
Nom de l'attribut de règle
Type de l'attribut de règle tel qu'il est déclaré dans le jeu de règles. La valeur d'exécution réelle peut être issue d'un sous-type de ce type déclaré
Etat de la valeur, à savoir :
Calculée par les règles
Explicitement spécifiée par le code client, remplaçant tout calcul défini, ou initialisée1 comme faisant partie d'une expression create
Non spécifiée explicitement, non calculée au cours de l'exécution des règles (car la valeur n'a jamais été demandée par d'autres calculs ou tests) ou
Erreur survenue lors du calcul de la valeur (voir les journaux d'application ou la sortie de la console pour connaître les détails et la pile de calcul de l'erreur).
Représentation de l'affichage de la valeur. Si la valeur n'a jamais été calculée (NON_ENCORE_CALCULEE) ou est erronée (ERREUR), alors "?" s'affiche. Si la valeur est un objet de règle, elle s'affiche en tant que lien hypertexte navigable de telle sorte que vous pouvez voir les détails de cet objet de règle et
Dérivation RuleDoc de l'attribut (sans aucun lien). Pour plus d'informations sur RuleDoc, voir RuleDoc.
Liens vers les attributs qui ont été utilisés pour calculer cette valeur.
(Facultatif) Liens vers les attributs qui utilisaient cette valeur lors du calcul de leurs valeurs.
Si vous exécutez SessionDoc sur une base de données étendue, il peut s'avérer utile de supprimer les liens "utilisé par", car leur inclusion risque d'entraîner la génération de très nombreux objets de règles par SessionDoc. Pour supprimer la sortie des liens "utilisé par", utilisez l'élément curam.creole.execution.session.SessionDoc.write(File, boolean), en transmettant faux comme deuxième paramètre.
Pour les objets de règles stockés sur les tables de base de données de CER, vous pouvez créer une documentation SessionDoc en exécutant la classe curam.creole.util.DumpOutRuleObjects, avec un argument unique correspondant au nom d'un répertoire dans lequel créer la documentation SessionDoc. L'utilitaire DumpOutRuleObjects récupère tous les objets de règles à partir des tables de base de données, et l'action relative à chaque objet de règle externe sera donc de type "récupéré". Les éventuels objets de règles internes seront créés (étant donné qu'ils ne sont pas stockés) et afficheront donc une action de type "créé".
Vous pouvez parcourir les objets de règles pour visualiser les valeurs des attributs calculés sur les objets de règles, ainsi qu'une vue technique de la méthode utilisée pour obtenir le résultat d'un calcul donné.