플러스 주차 개인과제 트러블 슈팅

무너·2024년 12월 19일

플러스 주차 개인과제

문제 발생

Item Entity Test를 하던 중 status 기본값인 "PENDING"이 조회되어야하는데 null이 조회된다.

원인 추론

@SpringBootTest
class ItemTest {

    @Autowired
    private ItemRepository itemRepository;

    @Autowired
    private UserRepository userRepository;

    private User owner;
    private User manager;

    @BeforeEach
    void setUp() {
        owner = userRepository.save(new User("user", "test@email.com", "nickname", "1234"));
        manager = userRepository.save(new User("admin", "admin@email.com", "admin", "1234"));
    }

    @Test
    void testGetStatus() {
        //when
        Item item = new Item("item", "description", manager, owner);
        Item savedItem = itemRepository.save(item);

        //then
        assertThat(savedItem.getStatus()).isEqualTo("PENDING");
    }

assertThat(savedItem.getStatus()).isEqualTo("PENDING");에 브레이크 코드를 찍고 디버그 실행 시 savedItem의 status = null이고 findById로 조회 시 status = "PENDING"이다.

따라서 findById로 조회하는 과정이 더 필요한 것을 알 수 있다.

해결 방안

    @Test
    void testGetStatus() {
        //when
        Item item = new Item("item", "description", manager, owner);
        Item savedItem = itemRepository.save(item);
        Item itemById = itemRepository.findById(savedItem.getId()).orElse(null);

        //then
        assertThat(itemById).isNotNull();
        assertThat(itemById.getStatus()).isEqualTo("PENDING");
    }

위와 같이 코드를 수정한다.

결과 확인


테스트가 정상적으로 작동하는 것을 볼 수 있다.

profile
공부 기록📝

0개의 댓글