테스트
package com.eunji.backboard.repository;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Optional;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import com.eunji.backboard.entity.Board;
@SpringBootTest
public class BoardRepositoryTests {
// JUnit 테스트
@Autowired
private BoardRepository boardRepository;
@Test
void testInsertBoard() {
Board board1 = new Board(); // 전통적인 객체 생성방식
board1.setTitle("첫번째 테스트입니다.");
board1.setContent("내용입니다.");
board1.setCreateDate(LocalDateTime.now());
this.boardRepository.save(board1);
// Builder를 사용한 객체 생성 방식
Board board2 = Board.builder().title("두번째 테스트입니다.")
.content("내용입니다.")
.createDate(LocalDateTime.now()).build();
this.boardRepository.save(board2);
System.out.println("테스트 완료!!");
}
@Test
void testSelectBoard() {
List<Board> all = this.boardRepository.findAll(); // select * from board;
assertEquals(4, all.size());
System.out.println(all.size());
Board bd = all.get(0); // 게시글 중 가장 첫번째 값
assertEquals(1, bd.getBno()); // 첫번째 게시글의 PK값이 1인지 확인
System.out.println(bd.getBno());
}
@Test
void testUpdateBoard() {
Optional<Board> bd = this.boardRepository.findById(1L); // Long 값은 뒤에 L추가
assertTrue(bd.isPresent()); // bno가 1번인 게시글이 객체로 넘어왔는지 확인
Board ubd = bd.get();
ubd.setContent("테스트로 수정합니다.");
this.boardRepository.save(ubd); // save() id가 없으면 INSERT, id가 있으면 UPDATE 쿼리를 자동으로 실행해줌
System.out.println("수정완료");
}
@Test
void testDeleteBoard() {
Optional<Board> bd = this.boardRepository.findById(53L);
assertTrue(bd.isPresent());
Board dbd = bd.get();
this.boardRepository.delete(dbd);
System.out.println("삭제완료");
}
}
- insert, select, update, delete 되는 것을 확인할 수 있다!
오류발생
Spring Boot JPA TEST 진행 중 오류가 발생했다. . . 😦
@Test
void testSelectBoard() {
List<Board> all = this.boardRepository.findAll(); // select * from board;
assertEquals(4, all.size());
System.out.println(all.size());
Board bd = all.get(0); // 게시글 중 가장 첫번째 값
assertEquals(1, bd.getBno()); // 첫번째 게시글의 PK값이 1인지 확인
System.out.println(bd.getBno());
}
- Java Test 중 OpenJDK 64-Bit Server VM warning: Sharing is ... 빨간색 경고가 뜨면
- Ctrl + ,(설정) > Java Test Config 검색 > settings.json 편집
"java.test.config": {
"vmArgs": [
"-Xshare:off"
]
}
- 코드 추가 저장 후 실행
- 로그에 값이 잘 찍히는 것을 확인할 수 있음!!
'Spring Boot > STUDY' 카테고리의 다른 글
[Spring Boot] @Valid을 통한 게시글 등록 유효성 검사 (1) | 2024.06.19 |
---|---|
[Spring Boot] JPA 프로젝트 - Thymeleaf로 레이아웃 템플릿 생성 (0) | 2024.06.19 |
[Spring Boot] Spring Boot H2, Oracle, JPA (0) | 2024.06.17 |
[Spring Boot] @Resource이란? (0) | 2024.06.17 |
[Spring Boot]VSCode Spring Boot 환경설정 (0) | 2024.06.12 |