2009-05-20 13 views
5

Stiamo migrando la nostra applicazione in un contenitore Java EE e cercando gli strumenti da utilizzare per il test dell'unità (e test di integrazione) della nostra app migrata. nostri requisiti includono:Test dell'unità nell'ambiente Java EE

  • Ad-hoc test: la capacità di eseguire test manualmente, su richiesta (per essere utilizzato da sviluppatori mentre lo sviluppo di codice)
  • Batch test: la possibilità di eseguire una grande (e crescente) serie di prove di regolarità
  • in-container: i test di integrazione che utilizzano EJB come sono distribuiti nel contenitore
  • Unit testing: test di classi non necessariamente all'interno di un contesto EJB
  • Bello avere: semplice da installare , si integra con ant/IDE
  • Nessun requisito per testare servlet/JSP - solo POJO e EJB

Cosa stai usando per realizzare test in ambiente Java EE? Quali tecnologie/impostazioni hai implementato?

Le mie ricerche hanno scoperto Cactus e JUnitEE: hai avuto successo nel configurarli?

risposta

1

Usiamo JUnit normale per entrambi i test di unità e test di integrazione. Passiamo tra i due utilizzando un argomento VM e facciamo annotare i test con i marcatori per diretto vs server. Abbiamo una classe TestSuite personalizzata che trova ed esegue i test in base a queste informazioni, poiché era più semplice e meno incline agli errori che mantenere manualmente i test da eseguire.

Nel nostro caso utilizziamo il servizio remoto di Spring per parlare con servlet e EJB (tramite i servlet), e testare entrambi i casi è semplicemente una configurazione di avvio separata all'interno di Eclipse.

Abbiamo usato JunitEE qualche anno fa, ma alla fine ci siamo arresi a favore dell'uso di JUnit. Questo ci ha permesso di fare in modo che gli sviluppatori eseguissero tutti i test senza un server ed eseguissero entrambe le unità e quelle che chiamerei test di integrazione di basso livello nel loro IDE. Quindi lasciamo che la macchina di compilazione esegua gli stessi test di integrazione con lo stesso codice ora distribuito nel server attuale. Ciò rende il ciclo di sviluppo molto più veloce poiché raramente è necessario eseguire il server e distribuire il codice di servizio.

1

JUnit (EE) è ciò che ha utilizzato ogni progetto principale ($ 100 milioni +) che ho supportato. È davvero uno strumento fantastico e sapere come usarlo è inestimabile quando/se decidi di cercare altre opportunità di lavoro.

Ho supportato un sistema finanziario del governo che non ha utilizzato test unitari, ma dopo un sacco di spinte abbiamo finalmente implementato JUnit. Il sistema su cui lavoro ora è una grande modernizzazione delle agenzie governative e usiamo JUnit per tutti i nostri test unitari. Le due grandi aziende che sostengono la modernizzazione hanno reso essenziale JUnit lo standard in tutti i sottoprogetti. Abbiamo circa 200 sviluppatori che lo utilizzano senza intoppi.

È facile e veloce da configurare e una volta compreso e sfruttato le funzionalità, dimostrerà quanto sia inestimabile.

+0

Grazie! Quindi, ho ragione a supporre che stai usando una combinazione di JUnit e JUnitEE (http://www.junitee.org)? – Armadillo

+0

In questo momento corrente usiamo solo JUnit con RAD (basato su Eclipse). Non ho familiarità con nessuno sviluppatore che usi JUnitEE, ma questo non vuol dire che non sia uno strumento solido, la maggior parte delle persone si limita a JUnit. Se non è rotto, non aggiustarlo, dicono! – doomspork