您的位置:首页 > 编程语言 > Java开发

java单元测试junit测试线程问题

2015-12-27 16:40 190 查看
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中编写和维护多线程的单元测试。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: