Ich muss eine sehr große Testsuite für einen komplexen Satz von Geschäftsregeln schreiben, die derzeit in mehreren Tabellenformularen erfasst werden (z. B. wenn die Parameter XYZ so und so sind, sollte der Wert zwischen V1 und V2 liegen). Jede Regel hat einen Namen und eine eigene Semantik.Ist es möglich, JUnit-Testfälle und -Suiten programmgesteuert zu generieren?
Mein Endziel ist es, eine Testsuite zu haben, die in Sub-Test-Suites organisiert ist, mit einem Testfall für jede Regel.
Eine Option besteht darin, alle diese Regeln tatsächlich als Tests fest zu programmieren. Das ist hässlich, zeitaufwendig und unflexibel.
Eine weitere Möglichkeit besteht darin, ein Python-Skript zu schreiben, das die Regeldateien liest und Java-Klassen mit den Komponententests generiert. Ich würde das lieber vermeiden, wenn ich kann. Eine andere Variante wäre die Verwendung von Jython.
Idealerweise würde ich jedoch gerne eine Testsuite haben, die die Dateien lesen würde und dann Sub-Suites und Tests in ihnen definieren würde. Jeder dieser Tests kann mit bestimmten Werten aus den Tabellendateien initialisiert werden, feste Einstiegspunkte in unserem System ausführen und dann eine Validierungsfunktion für die Ergebnisse aufrufen, die auf dem erwarteten Wert basieren.
Gibt es einen vernünftigen Weg, dies nur mit Java zu tun?
Update: Ich habe unsere Regeln etwas vereinfacht. Einige von ihnen sind in der Tat tabellarisch (Excel-Stil), andere sind eher verschwommen. Die allgemeine Frage bleibt jedoch, da ich wahrscheinlich nicht die erste Person bin, die dieses Problem hat.
Sehr interessiert, um darüber zu erfahren; Ich muss mehr über Testfälle erfahren. – I82Much