gpt4 book ai didi

Java ThreadFactory 如何创建 ThreadCreationException 以在 JUnit 中进行测试

转载 作者:行者123 更新时间:2023-11-30 05:00:01 26 4
gpt4 key购买 nike

尝试使用 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();
}

最佳答案

如果您使用依赖注入(inject),那么您可以创建一个模拟ThreadFactory:

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

并注入(inject)使用 NullThreadFactory 而不是 JBossThreadFactory 来进行特定的单元测试。

关于Java ThreadFactory 如何创建 ThreadCreationException 以在 JUnit 中进行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7124117/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com