gpt4 book ai didi

java - 如何对仅使用 jUnit 启动线程的方法进行单元测试?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:20:59 24 4
gpt4 key购买 nike

如标题所示,我想测试这样一个方法:

public void startThread()
{
new Thread()
{
public void run()
{
myLongProcess();
}
}.start();
}

编辑:从评论来看,我想测试线程是否启动并不是很常见。所以我必须调整问题...如果我的要求是 100% 的代码覆盖率,我是否需要测试该线程是否启动?如果是这样,我真的需要一个外部框架吗?

最佳答案

这可以通过 Mockito 优雅地完成.假设该类名为 ThreadLauncher,您可以确保 startThread() 方法调用了 myLongProcess(),其中:

public void testStart() throws Exception {
// creates a decorator spying on the method calls of the real instance
ThreadLauncher launcher = Mockito.spy(new ThreadLauncher());

launcher.startThread();
Thread.sleep(500);

// verifies the myLongProcess() method was called
Mockito.verify(launcher).myLongProcess();
}

关于java - 如何对仅使用 jUnit 启动线程的方法进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11080447/

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