Java ThreadFactory如何为JUnit中的测试创建ThreadCreationException
尝试使用ThreadFactory创建单元测试(边界集成测试),只是想知道如何“强制”Java/JVM不能创建更多线程 换句话说,如何调用ThreadFactory.newThread并获取nullJava ThreadFactory如何为JUnit中的测试创建ThreadCreationException,java,jboss,Java,Jboss,尝试使用ThreadFactory创建单元测试(边界集成测试),只是想知道如何“强制”Java/JVM不能创建更多线程 换句话说,如何调用ThreadFactory.newThread并获取null import org.jboss.threads.JBossThreadFactory.JBossThreadFactory; import java.util.concurrent.ThreadFactory; private final ThreadFactory threadFactor
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();
}
如果您正在使用依赖项注入,则可以创建一个模拟ThreadFactory:
private class NullThreadFactory implements ThreadFactory {
public Thread newThread(Runnable r) {
return null;
}
}
对于特定的单元测试,使用NullThreadFactory而不是JBossThreadFactory。+1:或者在创建线程计数后失败的测试。