@KilianFoth ha ragione riguardo all'inserimento di più metodi di prova in una classe di test. Tuttavia, penso che in alcuni casi può essere importante eseguire classi di test singole o anche singoli metodi di test. Ecco a cosa servono gli IDE, per semplificare questo approccio. Ad esempio, se un test richiama una routine intensiva di calcolo, che richiede alcuni minuti per terminare, potresti saltare questa parte del tempo.
Strutturazione dei test
Ogni classe nella tua cartella sorgente ottiene una classe di test unitaria nella cartella di test.
Lascia che la seguente struttura di directory sia la tua cartella di origine:
src/
|- persistance/
| |- DatabaseConnection.java
|
|- entities/
|- Apple.java
|- Orange.java
Quindi la cartella per i test unitari dovrebbe avere la stessa struttura (come quando si applica lo schema del metodo di fabbrica):
test/
|- persistance/
| |- DatabaseConnectionTest.java
|
|- entities/
|- AppleTest.java
|- OrangeTest.java
Per ogni metodo di una classe in src
scrivi almeno due test nella classe di test unitaria - un test positivo e uno negativo. Questi test possono essere abbastanza semplici come testare il comportamento di un metodo che accetta un parametro di tipo intero e una stringa viene passata. In questo caso, potresti dire al test di aspettarsi una certa eccezione, ad esempio IllegalArgumentException
:
@Test(expected=IllegalArgumentException.class)
public void testIfExceptionIsThrown { ... }
Puoi anche testare procedure più complesse (ad es. testare l'output di un algoritmo black box su un file di log).