테스트 코드 작성 방법

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();*/



}