Generieren von Testklassen

In diesem Abschnitt wird beschrieben, wie CER das Generieren von Testklassen für Regelwerke unterstützt. Das Regelwerk für Beispielleistungen (SampleBenefit) kann mithilfe dieser Unterstützung getestet werden. Für dieses Beispiel wird die Regel "Berechtigte Person" herangezogen.

Die Klasse Person verfügt über 2 Attribute, die angegeben werden müssen, um das Attribut 'eligible' für eine Person zu berechnen.
  1. age - eine Zahl zur Angabe des Alters einer Person.
  2. isStudent - ein boolescher Wert zur Angabe, ob die Person Schüler/Student ist.
Person hat ein abgeleitetes Attribut, wie nachfolgend beschrieben.
  1. eligible - ein boolescher Wert zur Angabe, ob eine Person berechtigt ist für "Beispielleistungen".
In den folgenden Schritte wird der CER-Testcodegenerator für die Datei SampleBenefit.xml ausgeführt, die in Abschnitt Extrahieren von Regelwerken aus der Datenbank zu Testzwecken extrahiert wurde.
  1. Öffnen Sie eine Eingabeaufforderung im Verzeichnis Curam/EJBServer.
  2. Führen Sie den Befehl build creole.generate.test.classes aus, um Testklassen aus Ihrem Regelwerk zu generieren. Dieses Ziel wird für die Regelwerke im Verzeichnis CREOLE_Rule_Sets für jede Komponente ausgeführt.
  3. Der CER-Codegenerator stellt seine Ausgabe in das Verzeichnis EJBServer/build/svr/creole.gen/source. Aktualisieren Sie die Entwicklungsumgebung.
Der generierte Code dient nur zur Verwendung in Testumgebungen, in denen Änderungen an dem Code einfach erneut kompiliert werden können. Der generierte Code ist nicht auf andere Maschinen portierbar, da er absolute Pfade zu den Regelwerken auf der lokalen Maschine enthält. Es ist besonders darauf zu achten, dass der generierte Code nicht in einer Produktionsumgebung verwendet wird, in der Regelwerke dynamisch geändert werden können.
Tipp: Generieren Sie Ihre Testklassen neu, wenn Sie Strukturänderungen an den Regelwerken vornehmen, wie beispielsweise:

Sie müssen Testklassen nicht neu generieren, wenn Sie nur Änderungen an der Implementierung eines Regelattributs vorgenommen haben (d. h. an seinen Ableitungsausdrücken). Die Ableitungen werden immer während der Laufzeit dynamisch aus dem Regelwerk verarbeitet und befinden sich nicht in den generierten Testklassen.