[사전 설정] -- 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 |