public class JnitAndRunnable {
class person implements Runnable{
@Override
public void run() {
try {
Thread.sleep(1000);
System.out.println("我在吃饭");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
@Test
public void testJunit(){
new Thread(new person()).start();
}
}
结果没有任何输出,但是如果去掉休眠时间会输出“我在吃饭”。
因为线程还在激活状态的时候,Junit已经执行完成,使线程执行结束的时候,你的测试不能反映出它的执行结果。这个问题行是在Junit的TestRunner中。它没有被设计成搜寻Runnable实例,并且等待这些线程发出报告,它只是执行它们并且忽略了它们的存在。因为这个原因,几乎不可能在Junit中编写和维护多线程的单元测试。
java单元测试junit测试线程问题
最新推荐文章于 2024-08-01 11:42:45 发布