Erster Test
Für jede Regel ein Unit-Test
Zum Testen wurde für jede Regel der Entscheidungstabelle ein Unit-Test erzeugt.
Damit haben wir auch gleich schon eine erste Testmetrik: 100% Regel-Überdeckung.

Wir verwenden für Unit-Tests gerne Cucumber. Die Generierung von Gherkin-Feature-Dateien aus Entscheidungstabellen wird im Abschnitt Testfallgenerierung erläutert.
# Diese Datei wurde erzeugt durch LF-ET 2.4.1 (260219a)
#
# Entscheidungstabelle: \src\main\resources\lfet\demo\Rechnungsbetrag.lfet
# Regelauswahl und Regelsortierung: Alle Regeln, Standardsortierung
# Testfälle mit Fehlern: 0
# Testfälle mit Warnungen: 0
# language: de
Funktion: Rechnungsbetrag berechnen
@recommended
Szenario: 0001 Rechnungsbetrag
Rechnungsbetrag
R01 : B01 Bestellwert = < 20,00
Angenommen das Porto beträgt EUR 4,97
Wenn der Wert der Bestellung EUR 18,00 beträgt
* der Bestellvorgang abgeschlossen wurde
Dann wird kein Rabatt berücksichtigt
* wird ein Porto in Höhe von EUR 4,97 berechnet
* ergibt sich ein Gesamtbetrag in Höhe von EUR 22,97
@recommended
Szenario: 0002 Rechnungsbetrag
Rechnungsbetrag
R02 : B01 Bestellwert = 20,00 - 75,00 ; B02 Rabatt = >0 ; B03 Rabattvariante = %
Angenommen das Porto beträgt EUR 8,04
Wenn der Wert der Bestellung EUR 40,00 beträgt
* ein Rabattcode mit einem Wert in Höhe von 5 % eingeben wurde
* der Bestellvorgang abgeschlossen wurde
Dann wird ein Rabatt in Höhe von EUR 2,00 berücksichtigt
* wird ein Porto in Höhe von EUR 8,04 berechnet
* ergibt sich ein Gesamtbetrag in Höhe von EUR 46,04
@recommended
Szenario: 0003 Rechnungsbetrag
Rechnungsbetrag
R03 : B01 Bestellwert = 20,00 - 75,00 ; B02 Rabatt = >0 ; B03 Rabattvariante = EUR ; B04 Rabatt < Bestellwert = J
Angenommen das Porto beträgt EUR 8,58
Wenn der Wert der Bestellung EUR 74,99 beträgt
* ein Rabattcode mit einem Wert in Höhe von EUR 37,50 eingeben wurde
* der Bestellvorgang abgeschlossen wurde
Dann wird ein Rabatt in Höhe von EUR 37,50 berücksichtigt
* wird ein Porto in Höhe von EUR 8,58 berechnet
* ergibt sich ein Gesamtbetrag in Höhe von EUR 46,07
@recommended
Szenario: 0004 Rechnungsbetrag
Rechnungsbetrag
R04 : B01 Bestellwert = 20,00 - 75,00 ; B02 Rabatt = >0 ; B03 Rabattvariante = EUR ; B04 Rabatt < Bestellwert = N
Angenommen das Porto beträgt EUR 4,56
Wenn der Wert der Bestellung EUR 60,00 beträgt
* ein Rabattcode mit einem Wert in Höhe von EUR 60,00 eingeben wurde
* der Wert des Rabattes größer oder gleich dem Bestellwert ist
* der Bestellvorgang abgeschlossen wurde
Dann wird kein Rabatt berücksichtigt
* wird ein Porto in Höhe von EUR 4,56 berechnet
* ergibt sich ein Gesamtbetrag in Höhe von EUR 64,56
@recommended
Szenario: 0005 Rechnungsbetrag
Rechnungsbetrag
R05 : B01 Bestellwert = 20,00 - 75,00 ; B02 Rabatt = ohne
Angenommen das Porto beträgt EUR 3,11
Wenn der Wert der Bestellung EUR 50,00 beträgt
* kein Rabattcode angegeben wurde
* der Bestellvorgang abgeschlossen wurde
Dann wird kein Rabatt berücksichtigt
* wird ein Porto in Höhe von EUR 3,11 berechnet
* ergibt sich ein Gesamtbetrag in Höhe von EUR 53,11
@recommended
Szenario: 0006 Rechnungsbetrag
Rechnungsbetrag
R06 : B01 Bestellwert = > 75,00 ; B02 Rabatt = >0
Angenommen das Porto beträgt EUR 8,98
Wenn der Wert der Bestellung EUR 119,99 beträgt
* ein Rabattcode mit einem Wert in Höhe von EUR 20,00 eingeben wurde
* der Bestellvorgang abgeschlossen wurde
Dann wird ein Rabatt in Höhe von EUR 20,00 berücksichtigt
Aber es wird kein Porto berechnet
Dann ergibt sich ein Gesamtbetrag in Höhe von EUR 99,99
@recommended
Szenario: 0007 Rechnungsbetrag
Rechnungsbetrag
R07 : B01 Bestellwert = > 75,00 ; B02 Rabatt = ohne
Angenommen das Porto beträgt EUR 9,66
Wenn der Wert der Bestellung EUR 90,00 beträgt
* kein Rabattcode angegeben wurde
* der Bestellvorgang abgeschlossen wurde
Dann wird kein Rabatt berücksichtigt
Aber es wird kein Porto berechnet
Dann ergibt sich ein Gesamtbetrag in Höhe von EUR 90,00
### end of generated test cases ###
Ergebnis
Nach Ausführung des Tests, z.B. mit dem Maven Befehl mvn clean verify, sieht das Ergebnis erfreulich aus: BUILD SUCCESS.
Durch den Standard-Tracecode in den Regelmodulen sieht man in der Konsolausgabe 'out of the box':
-
den Namen der Entscheidungstabelle
-
den Zeitstempel der Programmgenerierung
-
die Anzahl der Regeln in der Entscheidungstabelle
-
die Nummer der Regel, die ausgeführt wurde
-
in unserem Beispiel zusätzlich auch noch den Zustand des Modells VOR Ausführung der Regel
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[INFO] Running lfet.demo.RechnungsbetragTest
Rechnungsbetrag, 20260224.112051, 7, 1, Rechnungsbetrag_model(bestellwert=18.00, rabatt=0.00, rabattTyp=null, porto=4.97, rechnungPorto=0, rechnungRabatt=0, rechnungBetrag=0)
Rechnungsbetrag, 20260224.112051, 7, 2, Rechnungsbetrag_model(bestellwert=40.00, rabatt=5.00, rabattTyp=%, porto=8.04, rechnungPorto=0, rechnungRabatt=0, rechnungBetrag=0)
Rechnungsbetrag, 20260224.112051, 7, 3, Rechnungsbetrag_model(bestellwert=74.99, rabatt=37.50, rabattTyp=EUR, porto=8.58, rechnungPorto=0, rechnungRabatt=0, rechnungBetrag=0)
Rechnungsbetrag, 20260224.112051, 7, 4, Rechnungsbetrag_model(bestellwert=60.00, rabatt=60.00, rabattTyp=EUR, porto=4.56, rechnungPorto=0, rechnungRabatt=0, rechnungBetrag=0)
Rechnungsbetrag, 20260224.112051, 7, 5, Rechnungsbetrag_model(bestellwert=50.00, rabatt=0.00, rabattTyp=null, porto=3.11, rechnungPorto=0, rechnungRabatt=0, rechnungBetrag=0)
Rechnungsbetrag, 20260224.112051, 7, 6, Rechnungsbetrag_model(bestellwert=119.99, rabatt=20.00, rabattTyp=EUR, porto=8.98, rechnungPorto=0, rechnungRabatt=0, rechnungBetrag=0)
Rechnungsbetrag, 20260224.112051, 7, 7, Rechnungsbetrag_model(bestellwert=90.00, rabatt=0.00, rabattTyp=null, porto=9.66, rechnungPorto=0, rechnungRabatt=0, rechnungBetrag=0)
[INFO]
[INFO] Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.050 s -- in lfet.demo.RechnungsbetragTest
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
