
单元测试&日志
文章平均质量分 71
aitangyong
成长最快、最好的方式就是交流和总结!
展开
-
log4j日志优化:使用BufferedIO和BufferSize而不是ImmediateFlush
之前我们使用FileAppender的时候,我们配置是ImmediateFlush=true,一旦有新日志写入,立马将日志写入到磁盘的文件中。当日志很多,这种频繁操作文件显然性能很低下。可以发现:日志不能写入到文件中。这是因为:日志是停留在内存中的,虚拟机已经关闭,内存被是否了,log4j并没有将内存中的日志写入到文件中。怎么解决这个问题呢?这里使用了JVM关闭的回调,类似地在tomcat等web容器中,也有类似的关闭事件。我们需要捕获关闭事件,然后调用LogManager.shutdown()即可。原创 2015-12-24 15:53:22 · 19059 阅读 · 0 评论 -
log4j入门贴
apache log4j是项目很常用的日志框架,这篇文章我们来学习下log4j。log4j主要由三大类组件构成:logger、appender和layout。logger决定什么级别的日志可以输出,什么级别的日志不能输出。appender决定日志输出的目的地。layout用来对输出的日志进行格式化。一个logger可以有多个appender,但是每个appende只能对应一个layout。实际上不同的请求肯定是有差别的,比如IP不同、session不同或者是业务上的主键不同。我们就可以使用NDC或者MDC将原创 2015-12-23 16:22:19 · 835 阅读 · 0 评论 -
log4j框架logger的继承关系以及使用场景
log4j日志框架logger是存在继承关系的,我们一般都会在log4j.properties文件中定义log4j.rootLogger。其他所有logger都继承自这个rootLooger。现在我们可以介绍下logger的继承关系了,比如我们上面的类aty.log.service.A中使用了logger来写日志。那么log4j会先查找名称是"aty.log.service.A"的logger,如果没有找到,向上查找名称是"aty.log.service"的logger,如果还没有找到那么继续向上查找,查找原创 2015-12-24 11:28:21 · 8730 阅读 · 0 评论 -
使用Jmockit完成static方法的mock
传统的JMock是无法Mock静态方法的,但是Jmockit能够很好地Mock类的静态方法。原创 2014-11-10 19:09:49 · 19580 阅读 · 0 评论 -
JMockit学习之mock接口和抽象类
大型软件项目,往往会在设计的时候进行模块化划分,模块之间存在依赖关系。为了减少各个模块之间的耦合,通过接口进行依赖,各个模块由不同的开发组进行并行开发。如果A模块需要使用B模块的接口,但是B模块由于开发进度缓慢,并没有完成对应实现类的开发。那么这个时候A进行单元测试就有困难了。如果A需要测试自己的模块功能,就需要将B的接口进行mock。下面介绍下jmockit如何mock接口的。原创 2014-02-27 19:09:30 · 20262 阅读 · 0 评论 -
java单元测试覆盖率工具:EclEmma
使用JUnit进行java代码单元测试是开发者必备的技能,这个很简单。很多时候我们需要关注:我们的代码覆盖率到底是多长?哪儿些代码被单元测试覆盖了,哪儿些代码没有被覆盖到?EclEmma就是这样的一个插件,能够显示单元测试的覆盖情况,能够很好地与Eclipe、maven等工具集成。我们项目单元测试使用的就是:JUnit + EclEmma + jMockit 工具,能够方便地进行单元测试,显示单元测试覆盖率。原创 2015-12-14 10:53:27 · 2047 阅读 · 0 评论