Java ThreadFactory, как создать исключение ThreadCreationException для тестирования в JUnit - PullRequest
1 голос
/ 19 августа 2011

Попытка создать модульный тест (пограничное интеграционное тестирование) с использованием ThreadFactory, и просто интересно, как «заставить» Java / JVM не создавать больше потоков?

Другими словами, как мневызвать ThreadFactory.newThread и получить значение null?

import org.jboss.threads.JBossThreadFactory.JBossThreadFactory;  
import java.util.concurrent.ThreadFactory;

private final ThreadFactory threadFactory;

JBossThreadFactory threadFactory = new JBossThreadFactory(null, null, null, "test thread %p %t", null, null);

final Thread thread = threadFactory.newThread(new Worker(task));
if (thread == null) {
    throw new ThreadCreationException();
}

1 Ответ

2 голосов
/ 19 августа 2011

Если вы используете внедрение зависимостей, вы можете создать фиктивную ThreadFactory:

private class NullThreadFactory implements ThreadFactory {
    public Thread newThread(Runnable r) {
        return null;
    }
}

и введите для этого конкретного юнит-теста NullThreadFactory вместо JBossThreadFactory.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...