JpaRepository를 사용하지 않음
인터페이스 저장소를 생성하고 그 안에 메서드를 선언한 후
메서드를 재정의할 리포지토리를 만드는 memoryReposity 클래스 만들기
시험에 응시하다
package com.codehows.mobul.repository;
import com.codehows.mobul.entity.Boards;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.TestPropertySource;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
@SpringBootTest
@TestPropertySource(locations = "classpath:application-test.properties")
class BoardsRepositoryTest {
MemoryBoardsRepository boardsRepository = new MemoryBoardsRepository();
@AfterEach
public void afterEach(){ // 콜백 메서드 테스트 하나 끝날 때 마다 콜백 메서드
boardsRepository.clearStore(); // 테스트가 끝날 때마다 저장소를 지운다
}
@Test
public void save(){
for(int i=1; i<5; i++) {
Boards boards = new Boards();
boards.setBoardId(boards.getBoardId());
boardsRepository.save(boards);
Boards result = boardsRepository.findById(boards.getBoardId()).get();
// System.out.println("result = " + (result == boards));
// System.out.println(result);
// Assertions.assertEquals(boards, result); // boards = 기대 값 , result = 들어오는 값?
assertThat(boards).isEqualTo(result);
//import org.assertj.core.api.Assertions; 기억
System.out.println("result = " + result);
System.out.println("BoardsRepositoryTest.save");
}
}
@Test
public void findById(){
Boards board1 = new Boards();
board1.setBoardId(board1.getBoardId());
boardsRepository.save(board1);
Boards board2 = new Boards();
board2.setBoardId(board2.getBoardId());
boardsRepository.save(board2);
System.out.println(board1 + " + "+ board2);
Boards result = boardsRepository.findById(board2.getBoardId()).get();
assertThat(result).isEqualTo(board2);
}
@Test
public void findAll(){
Boards boards1 = new Boards();
boards1.setBoardId(boards1.getBoardId());
boardsRepository.save(boards1);
Boards boards2 = new Boards();
boards2.setBoardId(boards2.getBoardId());
boardsRepository.save(boards2);
List<Boards> result = boardsRepository.findAll(); // findAll 의 타입은 List<> 타입
Assertions.assertThat(result.size()).isEqualTo(2); // 기대한 값은 2인데 입력 값이 3이라서 에러
}
/* Boards boards = new Boards();
boards.setBoardTitle("게시판 제목");
boards.setBoardDate(LocalDateTime.now());
boards.setBoardTag("게시판 태그");
boards.setBoardId(1L);
boards.setBoardContent();
boards.setBoardLike();
boards.setBoardView();*/
}