2009-06-03 35 views
7

da dove inizio a scrivere il plug-in test? Ho scritto alcuni plugin per giocattoli e vorrei iniziare a fare TDD con i miei plugin.scrivere eclipse junit plugin test

+0

Che tipo di funzionalità ti piacerebbe provare? In effetti, i test dei plug-in di JUnit sono semplici test di JUnit, non c'è nulla di specifico su Eclipse. L'unica differenza è che se esegui il test JUnit come test del plugin JUnit, verranno eseguiti all'interno di un'istanza di Eclipse. –

+0

dal test del plugin, come interagisci con eclipse? ad esempio, pubblicare un evento a livello di programmazione per eseguire alcune azioni? – zeroin23

risposta

14

Se il plug-in sono RCP (Rich Client Platform) plugin, con SWT, è possibile utilizzare SWTBot.
Coloro test può essere incapsulato in JUnit uno:

Run-as-config-create


Se i plugin si basano-OSGi, si deve essere consapevoli che OSGi fascio gestisce il proprio caricatore di classe e quindi le classi non apparire essere nello stesso pacchetto.
Vedere "Is OSGi the enemy of JUnit tests?"

Fai il test plug un fragment.
Un problema è che altri plugin non possono accedere alle classi definite in frammenti (come precisa Patrick Paulin in a more detailed discussion about fragments in unit tests).
Un altro problema è che plugin.xml in un frammento viene ignorato. E quindi si prova plugin non può contribuire

Dall'articolo di Patrick:

A frammenti sembra molto simile a un plugin dall'esterno. È rappresentato come un progetto separato nel tuo spazio di lavoro, contiene un manifest che ne descrive il contenuto, è costruito e distribuito come un jar. Ciò che rende diverso un frammento è che contribuisce con le sue risorse in fase di esecuzione a un singolo host plug-in. Le classi nel frammento vengono quindi caricate dal classloader del plug-in host.

plugin unit test

Inserendo nostri test di unità in frammenti, possiamo fornire nostro accesso prove ai metodi non pubblici delle classi sotto test. Inoltre, poiché il codice sorgente e il codice di test fanno effettivamente parte dello stesso plug-in, non ci sono problemi relativi ai pacchetti non esportati. Le classi di test avranno accesso a tutti i pacchetti del plug-in, indipendentemente dal fatto che siano esportati o meno.

Lo svantaggio principale di questo approccio basato su frammenti è che è difficile aggregare i test di unità in una suite di test principale. Mentre è facile creare una suite di test che include i test all'interno di un frammento, non è così facile creare una suite che includa i test in più frammenti.


Se i plugin hanno bisogno solo alcuni semplici test, una suite JUnit test basta

Creare un nuovo banco di prova BookTest nel test.yourpackage pacchetto, fare clic destro del mouse sul pacchetto e scegliere " New > JUnit Test Case ".

new test case