栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

单元测试中是否有任何简单的slf4j使用模式?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

单元测试中是否有任何简单的slf4j使用模式?

我还喜欢在我的DAO类的JUnit测试中使用slf4j。当您创建新测试或修改旧测试时,它确实有帮助。我通常将旧的日志记录输出保留在调试级别,而使新的日志记录记录处于信息级别,而我仍在积极地使用该方法编写代码。我的JUnit类之一如下所示:

package com.example.mydao;import org.slf4j.Logger;import org.slf4j.LoggerFactory;// other imports not shown...public class TestMyDAO extends TestCase {    private static final Logger logger =         LoggerFactory.getLogger(TestMyDAO.class);    public void testA() {        logger.debug("Logging from testA() method");    }    public void testB() {        logger.debug("Logging from testB() method");    }    public void testThatIAmWorkingOn() {        logger.info("Logging from my new test method at INFO level");    }}

我使用log4j作为实际的日志记录提供程序,因此我的

log4j.xml
配置文件如下所示:

<?xml version="1.0" encoding="UTF-8"?>    <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">    <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">    <appender name="consoleAppender" >        <layout > <param name="ConversionPattern" value="%d %-5p  [%c{1}] %m %n" />        </layout>    </appender>    <logger name="com.example.mydao" additivity="false">        <level value="INFO" />        <appender-ref ref="consoleAppender"/>    </logger>    <logger name="org.hibernate" additivity="false">        <level value="WARN" />        <appender-ref ref="consoleAppender"/>    </logger>    <logger name="org.hibernate.connection.DriverManagerConnectionProvider" additivity="false">        <level value="INFO" />        <appender-ref ref="consoleAppender"/>    </logger>    <logger name="org.hibernate.connection.C3P0ConnectionProvider" additivity="false">        <level value="INFO" />        <appender-ref ref="consoleAppender"/>    </logger>    <logger name="com.mchange" additivity="false">        <level value="WARN" />        <appender-ref ref="consoleAppender"/>    </logger>    <logger name="com.mchange.v2.resourcepool.BasicResourcePool" additivity="false">        <level value="INFO" />        <appender-ref ref="consoleAppender"/>    </logger>    <logger name="com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource" additivity="false">        <level value="INFO" />        <appender-ref ref="consoleAppender"/>    </logger>    <logger name="com.mchange.v2.c3p0.C3P0Registry" additivity="false">        <level value="INFO" />        <appender-ref ref="consoleAppender"/>    </logger>    <root>        <priority value ="WARN" />        <appender-ref ref="consoleAppender"/>    </root></log4j:configuration>

这为我提供了JUnit类的信息级输出,以及Hibernate运行时和Hibernate使用的其他库中的一些有用信息。适应自己的口味。

最后,当我执行JUnit测试时,我需要确保以下所有库都在我的类路径中:

  • slf4j-api-1.6.0.jar
  • slf4j-log4j12-1.6.0.jar
  • log4j-1.2.16.jar
  • log4j.xml
    (我的配置文件,如上所示)
  • 某些版本的JUnit运行时JAR
  • 在生产环境中运行应用程序时,通常会显示所有JAR

这是我在使用log4j时所做的。如果使用其他日志记录实现,请进行相应调整。只要您使用的是不同版本的slf4j,都没关系,只要“
API”和实现JAR是相同的版本(我的都是1.6.0)即可。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/498521.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号