2010-05-24 19 views
8

Sto tornando in Java dopo un lungo periodo nel mondo Ruby e ho una domanda sui test di JUnit e sulla fonte che sto testando.Include test unitari nello stesso pacchetto del codice sorgente in Java

Se ho un pacchetto di codice grafico per la mia azienda, chiamiamolo com.example.graphics, dovrei includere i miei test anche in quel pacchetto o dovrebbero essere inclusi in un pacchetto separato, come com.example.graphics.test?

+0

Vedere anche http://stackoverflow.com/questions/440786/junit-java-testing-non-public-methods – Raedwald

risposta

31

Nello stesso pacchetto java va bene. In realtà è necessario se è necessario accedere a classi, metodi o campi privati ​​del pacchetto. Tuttavia, la fonte dovrebbe essere logicamente distinta:

src/main/com/example/graphics 
src/test/com/example/graphics 
+1

+1, come suggerito dal layout di directory standard Maven Java Archetype – ramirogm

1

Se non è necessario accedere alle classi private è in realtà una questione di sapore.

Talvolta tendo anche a creare un progetto di prova aggiuntivo riferito al progetto del prodotto. Pertanto, il prodotto e il test sono chiaramente separati.

1

Conservo personalmente tutti i miei test nello stesso pacchetto, ma nell'albero di test di Maven (che utilizzo sempre per i progetti Java). Prendi in considerazione l'utilizzo di Maven anche per le tue build, risparmiando molto lavoro da parte tua. Applica una struttura simile a quella che bkail menziona, ma offre molto di più di un layout di cartella di progetto standardizzato - ciclo di vita del progetto (pulito, compilazione, pacchetto, test), plug-in, ecc.

0

L'esecuzione di test in un pacchetto separato tende a evitare il problema di avere accidentalmente un metodo o una classe in ambito del pacchetto che si intende utilizzare per i client.

Problemi correlati