18 votes

JUnit termine les threads enfants

Lorsque je teste l'exécution d'une méthode qui crée un thread enfant, le test JUnit se termine avant le thread enfant et le tue.

Comment puis-je forcer JUnit à attendre que le thread enfant termine son exécution ?

0voto

YellowStar5 Points 33

En Java, essayez d'utiliser CountDownLatch pour que le thread principal attende que le thread enfant soit terminé.

    @Test
    public void myTest() {
        CountDownLatch countDownLatch = new CountDownLatch(1);
        new Thread(new Runnable() {
            @Override
            public void run() {
                //write your logic here
                countDownLatch.countDown();
            }
        }).start();
        //wait until the child thread completed.
        countDownLatch.await();
    }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X