@Cesar
2015-11-30T07:26:29.000000Z
字数 570
阅读 1895
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{@Overridepublic 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几乎不可以用来进行多线程的测试。
