Java/Spring

JUnit Test Code에서 Slf4j logger 이용하기

체리필터 2021. 4. 1. 09:24
반응형

그 동안 JUnitTest Code에서 @Slf4j 어노테이션을 이용해 로거를 사용하려 하면 다음과 같은 오류가 발생 했었다.

테스트 코드에서 Slf4j를 사용할 수 없다.

그냥 무슨 이유가 있는가 보다 하고 그냥 System.out.println을 사용 하였는데, 갑자기 궁금함에 검색해 보니 stackoverflow 에 이미 답이 있더라.

stackoverflow.com/questions/29076981/how-to-intercept-slf4j-with-logback-logging-via-a-junit-test

 

How to intercept SLF4J (with logback) logging via a JUnit test?

Is it possible to somehow intercept the logging (SLF4J + logback) and get an InputStream (or something else that is readable) via a JUnit test case...?

stackoverflow.com

링크 들어가 보기 귀찮은 분은 다음과 같이 사용하면 된다.

import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class FluxTest {
    Logger log = (Logger) LoggerFactory.getLogger(FluxTest.class);

    @Test
    public void anyTest() {
        Flux.just(3, 5, 7, 9, 11, 15, 17)
                .any(e -> e % 2 == 0)
                .subscribe(e -> log.debug(String.valueOf(e)));
    }
}

근데 왜 어노테이션을 사용 못하는 것일까? 갑자기 궁금증이...

반응형