Domanda

Anche se ho programmato con Java per circa 3 anni + adesso (non giorno per giorno, ma almeno ho capito i fondamenti), non hanno davvero entrare in campo Unit Testing ...

Il mio lavoro è ora più test / Problema Analisi orientata, quindi mi sa un buon Java Unit Testing Framework sarà molto utile a questo ruolo.

Ovviamente non esiste una regola formale che quadro di andare con nella mia squadra. Quindi chiedo solo, come un principiante, che quadro è una buona per iniziare rapidamente?

Junit?

TestNG?

o qualcos'altro?

Edit: sembra JUnit ha più libri stampati come riferimenti rispetto a TestNG su Amazon. Ma io non so la loro popolarità / tendenza nel settore Java come, per ora.

È stato utile?

Soluzione

Sono il creatore di TestNG e autore del libro "Next Generation Testing", per cui qui sono pochi (ovviamente di parte) pensieri.

Per funzionale (o un capo all'altro / integrazione / sistema, qualunque termine che preferite) test, TestNG offre alcune caratteristiche che JUnit non ha e che gli utenti hanno trovato molto utili:

  • Gruppi. Dopo aver compilato i test, si può solo chiedere TestNG per eseguire tutti i test "front-end", o "veloce", "lento", "database", ecc ...

  • Il supporto per il test multithread. Questo ha due significati diversi:

1) Si può dire TestNG per eseguire tutti i test contemporaneamente in pool di thread che si definisce (un cambio riga in un file XML). Questo è molto configurabile in modo che i test che non sono multithread possono ancora essere eseguiti in singoli fili.

2) Si può dire TestNG per richiamare i vostri metodi di prova n volte da thread p. Questo vi dà una buona idea di come thread-safe il codice che si sta testando è.

  • dipendenze di prova e ordinamento deterministico. Questo è molto utile per i test di integrazione dove è molto comune vedere i metodi di prova che hanno bisogno di metodi di prova prima di avere successo prima ancora di poter correre. TestNG è molto popolare nella comunità selenio per questo motivo specifico ( "do not bother prove della pagina del mio sito web, se il test di accesso non riuscito").

Un altro vantaggio immediato delle dipendenze di prova è che TestNG può dire "1 metodo fallita, 99 metodi saltati", che è un risultato molto più preciso di "100 metodi non riuscito".

TestNG ha molte, molte altre caratteristiche e io sono felice di rispondere alle domande qui o sulla nostra mailing-list ( http://groups.google.com/group/testng-users ).

Altri suggerimenti

Vorrei imparare TestNG con Unitils . Coperto tutte le mie esigenze per tutto il tempo. Aggiungere XMLUnit e DBUnit e si dovrebbe essere risolta da molto tempo.

Per essere onesto ho JUnit è il modo più popolare di TestNG, almeno qui, dove io lavoro e vivo. So che questo potrebbe essere un argomento strano, ma se fossi in te la scansione attraverso qualche lavoro aggiunge e vedere quale quadro fa l'industria nella vostra zona / favore Paese (per esempio ho intenzione di JUnit a causa di questo, voglio dire sicuro che avrei potuto imparare TestNG, potrebbe rivelarsi meglio, ma a che sarebbe servito a me, se tutti i datori di lavoro richiedono conoscenze JUnit?).

Anche se può sembrare un criterio di meschino, tutte le cose sono uguali, sembra che le tendenze di lavoro pesantemente favorire JUnit.

http://www.indeed.com/jobtrends?q= TestNG% 2C + JUnit & l =

Sia svolgere il proprio lavoro altrettanto bene, quindi non c'è giusto o sbagliato. È possibile utilizzare sia in combinazione con numerosi quadri al supporto help vostro sviluppo.

Se avete bisogno di lavorare per un cliente, si può imparare quello che ci si aspetta di utilizzo. In caso contrario, l'idea migliore è di provarli entrambi fuori e scoprire cosa funziona meglio per voi.

Ho usato sia e ha rilevato che per l'unità di test JUnit solo funziona molto bene, ma in termini di sistema di test mi sento di raccomandare TestNG. TestNG offre alcune funzioni extra (come il test parametrico) ed è altamente flessibile. Per esempio, in un test JUnit non riuscendo in una suite di solito significa che dovete eseguire nuovamente l'intera suite, ma in TestNG si può semplicemente eseguire nuovamente il test che non è riuscito. Heres un ottimo articolo che delinea sia (sua un po 'sbilanciata verso TestNG però)

http://www.ibm.com/developerworks /java/library/j-cq08296/index.html

JUnit è molto ben supportato in molti IDE tra cui Eclipse, e JUnit 4 con annotazioni è molto bello lavorare con.

A meno che non si hanno esigenze specifiche per poi andare strumento di supporto, vale a dire JUnit.

TestNG con Unitils è davvero grande. Copre quasi tutti i requisiti. Unitils supporto sacco di utils affermazione, Spring, Hibernate, quadri beffardo, dbutils etc.

Per me, è solo una questione di gusti. Ho usato personnaly jUnit al giorno per più di 5 anni e sono molto felice con lui, in particolare con l'ultima versione e la sua caratteristica @Rule che impedisce la mia squadra dalla scrittura lo stesso codice più e più volte. Si integra bene con tutti gli strumenti che uso tutti i giorni: IDE, costruire, l'integrazione continua ...

Junit è famoso e migliori strumenti di test di unità, penso che tu ed io sia il know Junit è così importante in modo che gli sviluppatori Java cambia il loro modello di codifica come contributo JUnit, è possibile imparare alcune Junit come la tecnologia di prova unità di base così come imparare TestNG come seconda tecnologia unit test.

Il seguente link forse essere utile per voi! http://www.javarmi.com / 2010/08 / JUnit-4 dimostrativi-e-ad esempio-get-inizio /

Junit è il posto migliore per iniziare. JUnit 4.x ha molte funzionalità avanzate come le annotazioni, ecc, nonché la sua ottenere un buon supporto da quadri famosi come primavera.

Vorrei andare per JUnit.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top