🤍 전 강의 25% 할인 중 🤍
2024년 상반기를 돌아보고 하반기에도 함께 성장해요!인프런이 준비한 25% 할인 받으러 가기 >>
132만명의 커뮤니티!! 함께 토론해봐요.
void 메서드는 어떻게 테스트해야할 지 고민해본 적은 있었는데, 콘솔 로그가 원하는대로 나오는지 테스트는 해본적이 없는 것 같습니다. 좋은 것 배워갑니다. class LogTrackerV1Test { @Test void begin_end() throws Exception { // given ListAppender<ILoggingEvent> listAppender = new ListAppender<>(); Logger logger = (Logger) LoggerFactory.getLogger(LogTrackerV1.class); logger.addAppender(listAppender); listAppender.start(); LogTrackerV1 tracker = new LogTrackerV1(); // when TraceStatus status = tracker.begin("hello"); tracker.end(status); // then List<ILoggingEvent> testLogs = listAppender.list; assertThat(testLogs).hasSize(2); assertThat(testLogs.get(0).getFormattedMessage()).matches("\\[[a-z0-9]{1,8}\\]\\shello"); assertThat(testLogs.get(0).getLevel()).isEqualTo(Level.INFO); assertThat(testLogs.get(1).getFormattedMessage()).matches("\\[[a-z0-9]{1,8}\\]\\shello\\stime=[0-9]*ms"); assertThat(testLogs.get(1).getLevel()).isEqualTo(Level.INFO); } @Test void begin_exception() throws Exception { // given ListAppender<ILoggingEvent> listAppender = new ListAppender<>(); Logger logger = (Logger) LoggerFactory.getLogger(LogTrackerV1.class); logger.addAppender(listAppender); listAppender.start(); LogTrackerV1 tracker = new LogTrackerV1(); // when TraceStatus status = tracker.begin("hello"); tracker.exception(status, new IllegalArgumentException()); // then List<ILoggingEvent> testLogs = listAppender.list; assertThat(testLogs).hasSize(2); assertThat(testLogs.get(0).getFormattedMessage()).matches("\\[[a-z0-9]{1,8}\\]\\shello"); assertThat(testLogs.get(0).getLevel()).isEqualTo(Level.INFO); assertThat(testLogs.get(1).getFormattedMessage()).matches("\\[[a-z0-9]{1,8}\\]\\shello\\stime=[0-9]*ms ex=[a-zA-Z.]*"); assertThat(testLogs.get(1).getLevel()).isEqualTo(Level.INFO); } }