본문 바로가기
springboot

[springboot] JUnit 테스트에서 @Slf4j 사용하기

by 개발LOG 2024. 2. 14.

JUnit 테스트에서 @Slf4j 사용하려면 build.gradle 파일에 아래 내용을 추가해야 한다.

	testAnnotationProcessor 'org.projectlombok:lombok' // 테스트를 위한 세팅 @Slf4j
	testImplementation 'org.projectlombok:lombok' // 테스트를 위한 세팅 @Slf4j

 

그러면 정상적으로 로그를 사용할 수 있다.

아래는 @Slf4j  사용한 예시다.

package com.pnow.repository;

import com.pnow.domain.Category;
import com.pnow.domain.CategoryType;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.List;

import static org.junit.jupiter.api.Assertions.assertEquals;

@Slf4j
//@ExtendWith(SpringExtension.class) //JUnit5 버전
@SpringBootTest //자동으로 h2 데이터베이스 실행함
public class CategoryRepositoryTests {
    @Autowired
    private CategoryRepository categoryRepository;

    @AfterEach //JUnit5
    public void cleanup() {
        categoryRepository.deleteAll();
    }

    @Test
    public void 카테고리저장_불러오기() {
        //given
        for (CategoryType category: CategoryType.values()) {
            log.info("category : {}",category);
            categoryRepository.save(Category.builder().categoryName(category).build());
        }

        //when
        List<Category> categoryList = categoryRepository.findAll();

        //then
        Category category = categoryList.get(0);
        assertEquals(CategoryType.한식, category.getCategoryName());

    }


}

 

실행 결과: