Domanda

Qual è lo strumento migliore, preferibilmente gratuito/open source, per la generazione automatica di unit test Java?Lo so, i test unitari non possono realmente avere lo stesso scopo dei normali test unitari TDD che documentano e guidano la progettazione del sistema.Tuttavia, i test unitari generati automaticamente possono essere utili se si dispone di un'enorme codebase legacy e si desidera sapere se le modifiche che è necessario apportare avranno effetti collaterali indesiderati e oscuri.

È stato utile?

Soluzione

Non gratis.Non open source.Ma ho trovato AgitarOne Agitator (http://www.agitar.com/solutions/products/agitarone.html) per essere VERAMENTE buono per generare automaticamente test unitari E cercare effetti collaterali oscuri indesiderati

Altri suggerimenti

Ad essere onesti, probabilmente non lo farei.I test unitari sono isolati e in realtà non saprai se hai "effetti collaterali indesiderati e oscuri" perché tutto è separato dalle altre cose che causano gli effetti collaterali.Di conseguenza, è necessaria l'integrazione o il test del sistema e Quello non è qualcosa che puoi automatizzare.

Costruisci alcuni test di sistema end-to-end di alto livello che ti diano un certo grado di sicurezza e poi usa i test di copertura per scoprire cosa ti sei perso. Lo svantaggio è che quando emergono bug, sarà più difficile indicarli alla loro causa esatta, ma il lato positivo è che avrai molte più probabilità di vedere i bug.

Una volta trovati i bug, scrivi unit test solo per loro.Man mano che vai avanti, puoi utilizzare TDD per i bit di cui desideri eseguire il refactoring.

So che probabilmente questa non era la risposta che volevi sentire, ma ho testato per molti, molti anni e questo è un approccio solido (anche se difficilmente lo definirei l'unico approccio :)

È interessante, ma tale gli unit test generati possono effettivamente essere utili. Se stai lavorando su un'applicazione legacy, sarà spesso difficile scrivere unit test corretti e all'avanguardia.

Tali test generati (se hai un modo per generarli ovviamente) possono quindi garantire che il comportamento del codice rimanga intatto durante le modifiche, il che può quindi aiutarti rifattorizzare il codice e scrivere test migliori.

Adesso circa generandosi.Non conosco nessuno strumento magico, ma potresti voler cercare la funzionalità JUnit sull'inclusione di alcuni test in Javadoc per i metodi.Ciò ti consentirebbe di scrivere alcuni semplici test.E sì, in realtà ha un certo valore.

In secondo luogo, puoi semplicemente scrivere "grandi" test a mano.Naturalmente, questi non sarebbero test unitari di per sé (nessun isolamento, potenziali effetti collaterali, ecc.), ma potrebbe essere un buon primo passo.Soprattutto se hai poco tempo e un'applicazione legacy.

Suggerimento bonus! C'è un eccellente libro "Lavorare in modo efficace con il codice legacy" con esempi in Java, comprese le tecniche giuste da utilizzare in tali situazioni.Sfortunatamente dovresti fare alcune cose manualmente, ma dovresti farlo comunque ad un certo punto.

Il plugin Coview per Eclipse (http://www.codign.com/products.html) sembra proprio il lavoro.Sono interessato a generare test che coprano tutti i percorsi nel codice e questo sembra farlo.Genera anche i mock che dovrebbero farmi risparmiare un sacco di tempo.

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