Martin Gross bio photo

Martin Gross

Solution seeker, building things, often in software.

Twitter Google+ LinkedIn Github

Wenn man Klassen mit JUnit testen will, die in einem eigenem Thread laufen, hat man ein Problem. Diese Tests werden nicht komplett ausgeführt.

TestCase nimmt an, das der Testfall beendet ist, sobald der Aufruf der Methode run() des Threads beendet wurde. Der Thread läuft allerdings im allgemeinen noch weiter. D.h. der Test wird dann nicht komplett durchgeführt.

Um zu erreichen, dass der Test bzw. der Thread komplett ausgeführt wird, kann man join() aufrufen.

Thread t = service.sendNewsletter(2, testUser);
// wait for the end of the thread, otherwise JUnit terminates the tests to early
t.join();