I tutorial sul sito di junit (gurda la pagina 'Getting Started') sono abbastanza interessanti e sicuramente meritano di essere studiati. Ci sono tutte le basi necessarie
L'unico problema e' che spiegano la meccanica, ma non danno molti consigli su come scrivere i test in base alle situazioni. Io, nella situazione piu' semplice possibile (lasciando stare Setup/TearDown, decoratori, estensioni di junit, TestDrivenDevelopment, Mock Objects, DynaMock

) per semplificare al massimo , trovo utili i seguenti pattern di test, la base per tutti gli altri:
Codice:
// $Id$
import junit.framework.TestCase;
/**
* @author stefano
* @version $Revision$
*/
public class EsempioDiTest extends TestCase
{
/**
* Serve per controllare i valori risultanti
*/
public void testPositivo() throws Exception
{
// Crea situazione iniziale
ClasseDaTestare oggettoDellaClasse = new ClasseDaTestare("Valore di inizializzazione");
// Esegui il codice
String result = oggettoDellaClasse.doSomething();
// Verifica il risultato
assertEquals("Valore di inizializzazione", result);
}
/**
* Serve per controllare che in opportune condizioni gli errori siano individuati correttamente
*/
public void testNegativo() throws Exception
{
try
{
// Crea situazione iniziale
ClasseDaTestare oggettoDellaClasse = new ClasseDaTestare("Orrendo valore che provoca IllegalStateException !!!!! ");
// Esegui il codice
oggettoDellaClasse.doSomething();
// Se arrivo qui, non va bene, perche in questo testo doveva esserci un eccezzione, quindi
fail(); // il test fallisce
}
catch (IllegalStateException e)
{
// Tutto OK !!
}
}
}
alla fine, si tratta sempre di :
- Creare una situazione iniziale
- Eseguire il codice da testare
- Verificare che sia successo cio' che doveva succedere
Nota che una volta scritti questi test, e' come se fossero una specifica per implementare il codice (io ad esempio il codice per farli funzionare non lo ho ancora scritto, lo lascio volentieri come esercizio ai volenterosi

). Quando il codice compila ed i test girano il codice e' completo, se ovviamente i test specificano tutto cio' che si vuole. Questo e' il concetto di base del Test Driven Development (TDD), in cui si scrivono i test con lo scopo di chiarire e documentare cosa deve fare il codice.
Se vuoi approfondire qualche argomento specifico, fammi sapere.
Ciao