Probekit ist ein Gerüst auf der Eclipse-Plattform, mit dem Sie Tests schreiben und verwenden können. Tests sind Java™-Codefragmente, die in ein Programm eingefügt wurden, um Informationen über das Programm während der Ausführung zur Verfügung zu stellen.
Zum Verständnis von Tests beginnen Sie mit dem hier beschriebenen Beispieltest. Hierbei handelt es sich um einen Basistest, der eine Nachricht druckt, die jede aufgerufene Methode bei der Ausführung Ihres Programms identifiziert.
Tests werden durch die von Ihnen im Probekit-Editor vorgenommenen Einträge definiert. Dieses Beispiel enthält ein einzelnes Fragment;
Fragmente bestimmen die Funktion des Tests. Fragmentdefinitionen bestehen aus:
- Einer Spezifikation des Fragmenttyps. Bei diesem Fragment handelt es sich um ein entry-Fragment, was bedeutet, dass es beim Eintrag der Methode ausgeführt wird.
- Datenelementen, auf die das Fragment zugreifen kann. In diesem Beispiel ermöglichen die Datenelemente dem Fragment, auf die Klassen- und Methodennamen zuzugreifen.
- Dem Java-Codeausschnitt, der die Logik des Tests definiert.
Dieses Fragment ruft System.out.println zur Anzeige des Klassen- und Methodennamens von ausgeführten Methoden auf.
So sieht der Test im Probekit-Editor aus:

Nachdem Sie einen Test mithilfe des Probekit-Editors erstellt haben, können Sie ihn auf die Klassen- und JAR-Dateien für Ihr Projekt anwenden. Wenn Sie daraufhin das Projekt ausführen, wird der Fragmentcode gemeinsam mit Ihrem Programm ausgeführt.
Im Folgenden finden Sie einen Überblick darüber, wie Sie Tests erstellen und verwenden, einschließlich Informationen dazu, wie Sie Probekit bei den folgenden Vorgängen unterstützt:
- Sie verwenden den Probekit-Editor, um Tests in Probekit -Quellendateien zu erstellen.
Probekit-Quellendateien müssen über die Erweiterung .probe verfügen. Sie können einen oder mehrere Tests enthalten, und jeder Test kann ein oder mehrere Testfragmente enthalten.
- Probekit setzt die Testfragmente zu einer Gruppe von Java-Methoden zusammen und kompiliert sie daraufhin. Wenn Probekit einen Test kompiliert, kombiniert es die Testfragmente mit einem Standard-Java-Muster, und generiert Java-Quellencode für eine neue Testklasse. Die aus den Testfragmenten generierten Funktionen erscheinen als statische Methoden der neuen Testklasse.
- Wenn Sie einen Test anwenden, geben Sie Zielklassen- und JAR-Dateien an, die Sie untersuchen möchten. Die Engine der Probekit-Bytecode-Instrumentierung (BCI) bezieht sich auf die Liste der verfügbaren Tests und ihrer Zielmuster und fügt in die Zielprogramme Aufrufe der Testfragmentmethoden ein. Der Vorgang, bei dem Aufrufanweisungen in Zielmethoden eingefügt werden, wird als Instrumentierung bezeichnet.
Eine Klasse, die eine instrumentierte Methode enthält, wird als getestete Klasse bezeichnet.
Die von einem Testfragment angeforderten Datenelemente (z.B. Methodenname und Klassenname) werden als Argumente übergeben.
- Nach der Instrumentierung der Anwendung. Die Testfragmente werden bei Ausführung des Programms ausgeführt.
Das Testfragment
Typ bestimmt, wann ein Fragment ausgeführt wird. Sie können Typen angeben, durch die das Fragment in den folgenden Fällen ausgeführt wird:
- Beim Eintrag der Methode.
- Beim Verlassen der Methode (entweder als normale Rückgabe oder als Ergebnis einer Ausnahmebedingung).
- Bei der Ausnahmebehandlungsroutine; d.h. zu Beginn einer catch- oder finally-Klausel, die als Ergebnis einer Ausnahmebedingung aufgerufen wird.
- Vor dem Original-Code im statischen Initialisierungsoperator der Klasse.
- Vor jeder ausführbaren Code-Einheit (wenn Quellcodeinformationen zur Verfügung stehen).
- Wenn bestimmte Methoden aufgerufen werden. (In diesem Fall wird die Instrumentierung in der Aufrufsite, nicht in der aufgerufenen Methode vorgenommen.)
Testfragmente können auf Datenelemente zugreifen, die verschiedene Arten von Informationen über die
Anwendung ab dem Zeitpunkt zur Verfügung stellen, ab dem Sie eingefügt wurden. Zum Beispiel:
- Paket, Klassen- und Methodenname
- Methodenkennung
- Dieses Objekt
- Argumente
- Rückgabewert
Wenn Sie möchten, dass Ihr Test nur auf bestimmte Klassen oder Methoden angewendet wird,
geben Sie Ziele an oder definieren Sie Filter. Weitere Informationen finden Sie unter Testziele und Testfilter.