Show TOC

ObjektdokumentationRichtige Verwendung von globalen Testklassen Dieses Dokument in der Navigationsstruktur finden

 

Modultests sollten als Klassen implementiert werden, die im getesteten Programmobjekt lokal sind.

Sie können jedoch auch globale Testklassen verwenden, die wiederverwendbare Logik für Modultests aufnehmen. Globale Testklassen dienen als:

  • Serviceklassen

    Eine Serviceklasse trägt die CLASS-Option FOR TESTING, enthält jedoch keine Test- oder Fixture-Methoden.

    Verwenden Sie Serviceklassen zur Bereitstellung testspezifischer Services, die für den Domänencode nicht sichtbar sein sollen. Beispielsweise können Sie bestimmte Aufgaben, wie die Bereitstellung von Test-Fixture-Teilen, auf eine Serviceklasse übertragen.

  • Übergeordnete Modultestklassen

    Eine übergeordnete Modultestklasse trägt die Option FOR TESTING und enthält mindestens eine Fixture- oder Testmethode.

    Klassen, die von einer Modultestklasse erben, sind ebenfalls Modultestklassen. Übergeordnete Modultestklassen ermöglichen es, Testlogik durch Vererbung wiederzuverwenden. Lokale Testklassen innerhalb der Domänenprogramme können die Methoden der abstrakten übergeordneten Testklasse wiederverwenden.

    Ein fundamentales Konzept von ABAP Unit verlangt jedoch, dass sich der Test und der getestete Quelltext im selben Programm befinden. Um sicherzustellen, dass Testmethoden in einer globalen Klasse nicht direkt als Modultests ausgeführt werden, verlangt ABAP Unit, dass eine übergeordnete Testklasse als ABSTRACT deklariert wird. Wenn eine übergeordnete Testklasse nicht ABSTRACT ist, gibt das ABAP-Unit-Framework eine Warnung aus.

    Die Anforderung, dass eine übergeordnete Testklasse ABSTRACT sein muss, erlaubt es lokalen Testklassen, von der Testklasse zu erben und die Testlogik wiederzuverwenden, ohne dass die Beziehung zwischen Test und getestetem Quelltext unklar wird.