2009-06-03 17 views
7

wo beginne ich beim schreiben plugin test? Ich habe ein paar Plugins geschrieben und möchte mit meinen Plugins TDD machen.schreibe eclipse junit plugin test

+0

Welche Art von Funktionalität würden Sie testen? Tatsächlich sind JUnit-Plugin-Tests nur einfache JUnit-Tests, für sie gibt es nichts Eclipse-spezifisches. Der einzige Unterschied ist, dass wenn Sie Ihren JUnit-Test als JUnit-Plugin-Test ausführen, er in einer Instanz von Eclipse ausgeführt wird. –

+0

aus dem Plugin-Test, wie interagieren Sie mit Eclipse? Programmieren Sie zum Beispiel programmgesteuert ein Ereignis, um einige Aktionen auszuführen? – zeroin23

Antwort

14

Wenn Ihr Plugin RCP (Rich Client Platform) -Plugins sind, können Sie mit SWT SWTBot verwenden.
Die Prüfung kann in JUnit ein eingekapselt werden:

Run-as-config-create


Wenn Ihre Plugins OSGi-basierten, Sie müssen sich bewusst sein, dass OSGi-Bundle läuft es loader eigene Klasse ist und deshalb erscheinen die Klassen nicht zu im selben Paket sein.
Siehe "Is OSGi the enemy of JUnit tests?"

Ihr Test fragmentPlugin machen.
Ein Problem ist, dass andere Plugins nicht auf in Fragmenten definierte Klassen zugreifen können (wie Patrick Paulin in a more detailed discussion about fragments in unit tests zeigt).
Ein weiteres Problem ist, dass plugin.xml in einem Fragment ignoriert wird. Und deshalb testen Sie Plugin nicht

Von Patrick Artikel beitragen können:

A-Fragmente sieht viel wie ein Plugin von außen. Es wird als separates Projekt in Ihrem Arbeitsbereich dargestellt. Es enthält ein Manifest, das seinen Inhalt beschreibt, es wird als jar erstellt und bereitgestellt. Ein Fragment unterscheidet sich dadurch, dass es seine Ressourcen zur Laufzeit zu einem einzigen Host-Plug-In beiträgt. Die Klassen im Fragment werden daher vom Classloader des Host-Plugins geladen.

plugin unit test

Durch unsere Unit-Tests in Fragmenten platzieren, können wir unsere Tests Zugang zu den nicht-öffentlichen Methoden der Klassen im Test zur Verfügung stellen. Da der Quellcode und der Testcode tatsächlich Teil desselben Plug-Ins sind, gibt es keine Probleme mit nicht exportierten Paketen. Testklassen haben Zugriff auf alle Pakete im Plug-In, unabhängig davon, ob sie exportiert werden oder nicht.

Der Hauptnachteil dieses Fragment-basierten Ansatzes besteht darin, dass es schwierig ist, Komponententests zu einer Master-Testsuite zusammenzufassen. Während es einfach ist, eine Testsuite zu erstellen, die die Tests in einem Fragment enthält, ist es nicht so einfach, eine Suite zu erstellen, die die Tests in mehreren Fragmenten enthält.


Wenn Ihre Plugins müssen nur einige einfache Tests, eine JUnit test Suite ist genug

einen neuen Testfall erstellen BookTest im Paket test.yourpackage, klicken Sie rechts auf das Paket und wählen Sie " New > JUnit Test Case ".

new test case