Threads in JUnit: wie warten erzwingen

oraclin25

Erfahrenes Mitglied
Hallo zusammen,

ich habe einen einfachen Unit-Test geschrieben:
Code:
@Test
public void testRatna() {
   for (int i=1 ; i<=3 ; i++){
      Thread t = new Thread(new RatnasRunnable(i));
      t.start();
   }
}

Die run-Methode von RatnasRunnable sieht wie folgt aus:
Code:
public void run() {
   System.out.println("Thread " + i + " startet");
   ...
   System.out.println("Thread " + i + " endet");
}

Wenn ich nun testRatna ausführe, endet der Test ja bekanntermaßen direkt nachdem der letzte Thread losgeschickt wird. JUnit wartet anscheinend nicht? So dass der Test folgendes macht:
Code:
Thread 1 startet
Thread 2 startet

Meine Frage:
Gibt es eine Möglichkeit, dass der Test erst endet, wenn alle Threads ihre Arbeit erledigt haben? Wie:
Code:
Thread 1 startet
Thread 2 startet
Thread 2 endet
Thread 1 endet

Vielen Dank für Eure Beiträge.

Viele Grüße aus Rheinland,

Eure Ratna ;)
 
Zurück