首页 > 代码库 > Junit单元测试对线程测试没反应

Junit单元测试对线程测试没反应

今天还想简单写写线程的东西,结果刚刚写完我就懵逼了。

结果啥都没有输出,而用主方法运行就可以输出。没办法,只有度年来寻求自己的答案了

结果各方面的了解,我算是有个了解了.

首先来看看代码

package com.mendale.Test;

import java.util.Date;

import org.junit.Test;


public class Test1 {

    @Test
    public void test() {
        MyTime mt = new MyTime();
        mt.start();
    }
    
    public static void main(String[] args) {
         MyTime mt = new MyTime();
        mt.start();
    }

}

class MyTime extends Thread{
    public void run(){
        boolean flag=true;
        while(flag){
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            Date d=new Date();
            System.out.println(d);
        }
        
    }
}

如果你用单元测试你会发现什么也没输出,同时也没报错;这个时候你再用主方法测试你就会

发现竟然有输出,竟然有输出了!!! 这个问题也是让我纠结了很久。

回想一下:

  我们常用的方法其实是一个精灵线程(即守护线程:它是在保证其他线程运行完之后,然后也就over了)。而单元测试我

上网了解了一下它不是一个精灵线程

(后续源码分析:暂缓)

Junit单元测试对线程测试没反应