Junit单元测试多线程的问题

本文讲述了在使用Junit进行单元测试时遇到的多线程问题,即Junit测试不支持多线程导致子线程未结束而程序被迫终止。作者分析了Junit4 TestRunner和TestResult的源码,揭示了问题的原因,并提出了两种解决方案:主线程休眠等待和使用CountDownLatch。此外,还提到存在自定义Junit支持多线程的方法。
摘要由CSDN通过智能技术生成

今天下午很快完成了一个接口的监控功能,然后屁颠屁颠地用Junit开始单元测试。然后我就开始陷入崩溃的边缘…

监控结束后需要将监控结果以邮件的形式发送给运营的小伙伴维护,前面测试还是很顺利,到了开多线程发邮件时就不行了,

程序也不报错,也接收不到邮件。然后改代码再测试,再冥思一会儿,再改再测试,还是无果,最后选择度娘一下,结论是:

Junit单元测试不支持多线程

然后,整个人都不好了…浪费了我好多时间,就是因为这个!!!

虽然知道了结果,但是笔者还是需要亲自验证一下。

/** * @Title: TestDoWork.java
 * @Describe:
 * @author: Mr.Yanphet
 * @Email: mr_yanphet@163.com
 * @date: 2016年8月15日 下午5:50:03
 * @version: 1.0 */
public class TestDoWork { class DoWork implements Runnable {

        @Override public void run() { for (int i = 0; i < 10000; i++) { long milliSecond = System.currentTimeMillis();
                System.out.println("i=" + i + ",milliSecond=" + milliSecond);// 输出循环次数和当前的系统时间
            }
        }

    }

    @
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值