zoukankan      html  css  js  c++  java
  • 对lombbok @slf4j 进行测试用例

    此文转载于:https://www.jvt.me/posts/2019/09/22/testing-slf4j-logs/

    工具类

    package com.justin.shell.lombook.slf4j;
    
    import ch.qos.logback.classic.Logger;
    import ch.qos.logback.classic.spi.ILoggingEvent;
    import ch.qos.logback.core.read.ListAppender;
    import org.slf4j.LoggerFactory;
    
    /**
     * @ClassName LoggerTestUtil
     * @Description
     * @Author YuGuo
     * @Date: 2020-10-23 19:13:28
     */
    public class LoggerTestUtil {
    
        public static ListAppender<ILoggingEvent> getListAppenderForClass(Class clazz) {
            Logger logger = (Logger) LoggerFactory.getLogger(clazz);
    
            ListAppender<ILoggingEvent> loggingEventListAppender = new ListAppender<>();
            loggingEventListAppender.start();
    
            logger.addAppender(loggingEventListAppender);
    
            return loggingEventListAppender;
        }
    }
    

     服务类

    package com.justin.shell.lombook.slf4j;
    
    import lombok.extern.slf4j.Slf4j;
    
    /**
     * @ClassName Slf4jService
     * @Description
     * @Author YuGuo
     * @Date: 2020-10-24 22:58:22
     */
    
    @Slf4j
    public class Slf4jService {
        public void printLog(){
            log.info("info");
            log.warn("warn");
            log.error("error");
        }
    }

    测试类

    package com.justin.shell.lombook.slf4j;
    
    import ch.qos.logback.classic.spi.ILoggingEvent;
    import ch.qos.logback.core.read.ListAppender;
    import org.junit.Assert;
    import org.junit.Test;
    
    /**
     * @ClassName Slf4jServiceTest
     * @Description
     * @Author YuGuo
     * @Date: 2020-10-24 22:59:38
     */
    public class Slf4jServiceTest {
    
        private ListAppender<ILoggingEvent> logEvents = LoggerTestUtil.getListAppenderForClass(Slf4jService.class);
    
        @Test
        public void testPrint(){
            Slf4jService slf4jService = new Slf4jService();
            slf4jService.printLog();
    
            Assert.assertEquals(3, logEvents.list.size());  //可以看出event的大小和服务类输出日志的个数一样
            Assert.assertEquals("info", logEvents.list.get(0).getFormattedMessage());
            Assert.assertEquals("warn", logEvents.list.get(1).getFormattedMessage());
            Assert.assertEquals("error", logEvents.list.get(2).getFormattedMessage());
        }
    
    }
  • 相关阅读:
    git commit 合并
    git 管理 Linux 文件系统
    python 全局变量的使用
    JavaScript 中 类型转换
    canconfig 配置命令
    python 调用 shell 命令
    python 3 操作mysql数据库的方法
    python 字符串和整数,浮点型互相转换
    JavaScript 里面的整数 位 操作
    JavaScript 使用 php 的变量
  • 原文地址:https://www.cnblogs.com/guoAIrong/p/13871569.html
Copyright © 2011-2022 走看看