본문 바로가기
Spring

[1] Entity Test

by 민지기il 2025. 3. 4.

[사전 설정] -- intellij의 경우 test를 할 때 build.gradle을 수정해줘야 한다.

testCompileOnly 'org.projectlombok:lombok'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testAnnotationProcessor 'org.projectlombok:lombok'

 

[Test할 것] -- Todo라는 entity가 null인지 확인한다.

TodoRepositoryTests 파일

@SpringBootTest
@Log4j2
public class TodoRepositoryTests {

    @Autowired
    private TodoRepository todoRepository;
    @Test
    public void testInsert(){
        Todo todo = Todo.builder()
                .title("Title")
                .content("Content...")
                .dueDate(LocalDate.of(2025,03,04))
                .build();
        Todo result = todoRepository.save(todo);
        log.info(result);
    }
    @Test
    public void testRead(){ //읽어오기

        Long tno = 1L; //pk 지정해서 select로 가져옴
        Optional<Todo> result = todoRepository.findById(tno); //Optional: null인지 check
        Todo todo = result.orElseThrow();
        log.info(todo);
    }
    @Test
    public void testUpdate(){
        Long tno = 1L;
        Optional<Todo> result = todoRepository.findById(tno);
        Todo todo = result.orElseThrow();
        todo.changeTitle("update title"); // todo entity에 setter를 만든 상황
        todo.changeComplete(true);
        todo.changeContent("update content");

        todoRepository.save(todo);
    }
}

> testInsert() 결과

> testRead() 결과

> testUpdate() 결과 : findById()로 select 먼저 실행 -> 종료 시 update 진행

 

[paging 처리]

    @Test
    public void testPaging(){ //db에서 데이터를 페이지 단위로 가져오기
        Pageable pageable = PageRequest.of(0, 10, Sort.by("tno").descending());
        Page<Todo> result = todoRepository.findAll(pageable);
        log.info(result.getTotalElements());
        log.info(result.getContent());
    }

> testPaging() 결과

현재 2개가 있음

'Spring' 카테고리의 다른 글

[6] Todo get, register, modify, remove  (0) 2025.03.07
[5] 페이지 처리 controller 동작  (0) 2025.03.06
[4] 페이지 처리하는 DTO 설계  (0) 2025.03.05
[3] DTO 설정  (0) 2025.03.04
[2] Querydsl  (0) 2025.03.04