2011-09-04 32 views
12

Sono un utente di lunga data di Eclipse ma un principiante quando si tratta di JUnit. Ho molti progetti Java e voglio iniziare a scrivere casi di test sui metodi in quei progetti. Mi sto solo chiedendo il modo migliore per configurare l'ambiente Eclipse per questo scopo. Supponiamo di avere un tipico progetto con una tipica directory src in un pacchetto specificato. Come posso allegare i casi di test a quel progetto. Alcune preoccupazioni: 1. Non voglio che i test case facciano parte di qualsiasi build che creo sul progetto. 2. Voglio fare riferimento alle clases nella suite di test.Come utilizzare JUnit con Eclipse

Devo impostare una directory di test separata sotto il pacchetto che voglio testare? Ho un pacchetto di test separato? Qual è il modo migliore per farlo?

risposta

8

E 'semplice abbastanza morto:

  • Trascinare o comunque di trovarsi file jar JUnit nella cartella lib, quindi modificare i vostri progetti costruire impostazioni per includerlo.
  • Creare un'altra cartella di origine nel progetto chiamato 'test'
  • Creare i pacchetti di test sotto la cartella di origine 'test'. La migliore pratica consiste nel simulare i nomi dei pacchetti dell'applicazione.
  • Creare le classi di test all'interno dei pacchetti di test. Le migliori pratiche consiste nel simulare le classi dell'applicazione che richiedono il test, ma aggiungere il test alla fine del nome. Così, per esempio nell'applicazione principale si potrebbe avere un myapp.service.PrintService e come corrispondente di prova si avrebbe myapp.service.PrintServiceTest
  • Estendere ogni classe di prova dalla junit.framework.TestCase
  • Eseguire il test classi usando TestRunner.

Quando si crea il pacchetto di distribuzione dell'applicazione, è sufficiente escludere la cartella di origine 'test'. Ora, se vuoi che l' sia veramente semplice, prova l'integrazione del test, quindi usa Maven per configurare il tuo progetto. Mette in pratica tutte le migliori pratiche per te subito.

+3

Poiché JUnit viene fornito con eclipse, non è necessario il file JAR, è comunque possibile aggiungerlo come libreria nella configurazione del progetto, sebbene sia necessario il JAR se si desidera eseguire i test da Ant. E non è stato necessario estendere TestCase da quando JUnit 4 è stato rilasciato nel 2006. Dovresti davvero prendere il tempo per imparare come usarlo, in quanto semplifica molte cose. –

+0

Se si desidera pubblicare una risposta separata in cui viene descritto in dettaglio come utilizzare le annotazioni JUnit, sentirsi liberi di farlo. Non mettere in discussione la mia conoscenza dello strumento solo perché scelgo di implementare i miei test in modo diverso da te. – Perception

+4

Sarei onestamente interessato ai motivi per cui uno oggi avrebbe scelto di estendere TestCase, a parte la mancanza di interesse per JUnit 4 perché JUnit 3 è stato "abbastanza buono". –

0

Una soluzione semplice sarebbe quella di creare un'altra directory di origine specifica per le classi relative ai test. Ad esempio, se le tue classi principali vivono in $PROJECT_ROOT/src, puoi inserire le classi relative ai test in $PROJECT_ROOT/src-test. Non ho Eclipse a portata di mano, ma so che è possibile modificare il file $PROJECT_ROOT/.classpath (è XML) per includere questa nuova directory:

<classpath> 
    <classpathentry kind="src" path="src"/> 
    <classpathentry kind="src" path="src-test"/> <!-- ADD THIS ONE --> 
    ... 
</classpath> 

Ora, tutte le classi di test vedranno le classi principali, ma hanno vinto essere incluso nella tua build In genere mi assicuro che la classe di test risieda nello stesso pacchetto della classe che sta testando. In questo modo, è possibile accedere a tutti i membri di protected dal codice di prova.

3

Il modo migliore (o almeno il più comune) per organizzare il codice di test è avere una cartella di origine separata per il codice di test, mantenendola così ben separata. In eclissi, puoi aggiungere cartelle di origine sotto "Crea percorso" nelle proprietà del progetto.

Tuttavia, è anche consigliabile mantenere le classi di test negli stessi pacchetti delle classi da testare (ovvero avere la stessa gerarchia di pacchetti nella cartella di origine del test). Ciò consente al codice di prova di chiamare i metodi privati ​​e protetti del pacchetto, rendendo molto più semplice testare il comportamento interno che non dovrebbe essere esposto nell'API pubblica.

Problemi correlati