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中编写和维护多线程的单元测试。
相关文章推荐
- java实现的选择排序、冒泡排序、二分查找
- 一个 Java 的 Socket 服务器和客户端通信的例子
- leetcode:142. Linked List Cycle II(Java)解答
- ThreadPoolTaskExecutor提高服务器响应速度
- java中的控制执行流程
- 使用Eclipse导出java.doc中文乱码问题
- 从头认识java-15.1 填充容器(3)-填充Map
- spring-context-4.0内的配置
- [JavaWeb基础] 030.dom4j读取xml的4种方法
- Spring之访问(消费)WebService
- Java突击学习 Day2 Part2
- struts2对action中的方法进行输入校验---xml配置方式(3)
- 【Java EE 学习 79 下】【动态SQL】【mybatis和spring的整合】
- MyEclipse下安装本地的安卓插件
- [JavaWeb基础] 029.OGNL表达式介绍
- Java访问修饰符
- Java进阶(五十三)屡试不爽之正则表达式
- Java进阶(五十三)屡试不爽之正则表达式
- 关于java中的操作符
- Struts2之文件下载