@Cesar
2015-11-30T15:26:29.000000Z
字数 570
阅读 1712
Java
学习
package cesar.test1126;
import junit.framework.TestCase;
public class ThreadTest extends TestCase{
public void test(){
Test1126 test1126 = new Test1126();
test1126.start();
System.out.println("end");
}
}
class Test1126 extends Thread{
@Override
public void run() {
try {
Thread.sleep(1000*1);
System.out.println(123);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(123);
}
}
当你运行该实例的时候,只会看到输出了"end"而没有123的输出。因为线程还在激活状态的时候,Junit已经执行完成。所以你的线程执行结束的时候,你的测试不能反映出它的执行结果。这个问题是因为Junit的TestRunner中,它没有被设计成搜寻Runnable实例并且等待这些线程发出报告,它只是执行启动了线程然后就忽略了它们。所以Junit几乎不可以用来进行多线程的测试。