E 'possibile sincronizzare i casi di test JUnit con le classi sotto test all'interno di Eclipse?
-
19-09-2019 - |
Domanda
So che è possibile creare un TestCase o TestSuite con la procedura guidata all'interno di JUnit, ma come si fa a sync il codice dopo la classe sotto il test è stato modificato, come ad esempio la modifica firma del metodo oi metodi appena aggiunti. Vorrei che il mio casi di test per essere in grado di sincronizzare (rimuovere o aggiungere) quelle modificate metodi / parametri / metodo firme nei miei casi di test.
Ho provato a cercare su Google senza alcun risultato, forse c'è un plugin Eclipse per questo?
Soluzione
I test che hanno un rapporto 1-1 con la struttura del codice di produzione sono un odore di prova. E 'molto meglio per le prove da scritti come una specificazione di comportamento del sistema (~ un test per ogni comportamento), invece di avere test generato in base al codice di produzione (~ un test per metodo).
http://blog.daveastels.com/files/BDD_Intro.pdf
Quando ti rendi conto che è tutto su come specificare il comportamento e non scrivere i test, il tuo punto di vista turni. Improvvisamente l'idea di avere una classe di test per ciascuna delle classi di produzione è ridicolmente limitante. E il pensiero di testare ciascuno dei vostri metodi con il proprio metodo di prova (in un 1-1 rapporto) sarà risibile.
Altri suggerimenti
Come accennato in precedenza, rifattorizzazione come rinomina o sposta si rifletteranno automaticamente nei casi di prova finché si refactoring per gli utensili Eclipse e non cambiando titolo manualmente per esempio.
Per quanto riguarda i nuovi metodi, è impossibile generare automaticamente i test. Naturalmente ci sono alcune eccezioni per il codice generato automaticamente cui è possibile controllare la generazione e dove si potrebbe generare casi di test come bene, ma per "normale" Codice manuale il meglio che si possa fare è stato quello di fornire stub (metodi vuoti), e che cosa è l'uso in questo?
Un approccio migliore è quello di tenere traccia copertura del codice utilizzando uno strumento come Cobertura o Emma , che succede ad avere un bel plug-in Eclipse che permette di vedere, all'interno del codice sorgente, che codice è coperto da prove e che non è. Questo allora è il vostro rapporto di cui avete bisogno di più test.
Se si modificano le firme metodo che utilizza il refactoring automatizzato, poi i casi di test - e tutti gli altri codice che chiama il metodo -. Verranno aggiornate automaticamente
Per i metodi appena aggiunto, non so di un modo per avere la classe di test aggiornata automaticamente.