Project/Boilerplate

Mock 객체 테스트 시 필드 주의점

조용우 2025. 3. 6. 15:29

문제:

@BeforeEach
void setUp() {
    mockUser = new User("testEmail", "testUser", "password", "testName", Role.USER);
    mockPost = new Post("Test Title", "Test Content", 0, mockUser);
    mockComment = new Comment("Test Comment", mockPost, mockUser, null);
}

이후, mockUser.getId()를 가져오는 것에 실패.

 

원인:

mock 객체이기 때문에 JPA 엔티티가 아니라 Id가 존재하지 않음

 

해결:

@BeforeEach
void setUp() {
    mockUser = new User("testEmail", "testUser", "password", "testName", Role.USER);
    ReflectionTestUtils.setField(mockUser, "id", 1L);
    mockPost = new Post("Test Title", "Test Content", 0, mockUser);
    mockComment = new Comment("Test Comment", mockPost, mockUser, null);
}