단위테스트/JUnit

[JUnit] JUnit Test Sample Code

멋진놈 2022. 11. 28. 09:40
728x90
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.List;

import static org.assertj.core.api.AssertionsForClassTypes.assertThat;

@SpringBootTest
public class EventTests {

    @Autowired
    EventRepository eventRepository;

    @Test
    void save() {

        // Event params = new Event("1번 이벤트 제목", "1번 이벤트 내용",  0, 'N') 아래와 같은것 가독성이 뛰언해짐.

        // 1. 이벤트 파라미터 생성   Event entity에서 작성한 Build 파라미터
        Event params = Event.builder()
                .title("1번 이벤트 제목")
                .content("1번 이벤트 내용")
                .deleteYn('N')
                .build();

        // 2. 이벤트 저장
        eventRepository.save(params);

        // 3. 1번 이벤트 정보 조회
        Event entity = eventRepository.findById((long) 3).get();       // assertThat 자신의 파라미터와 지정한 파라미터가 동일한지 비교할때 사용함. findById 실제 db에 요청해 엔티티 가져옴.
        assertThat(entity.getTitle()).isEqualTo("1번 이벤트 제목");
        assertThat(entity.getContent()).isEqualTo("1번 이벤트 내용");
        assertThat(entity.getDeleteYn()).isEqualTo('N');
    }

        @Test
        void findAll() {

            // 1. 전체 이벤트 수 조회
            long evensCount = eventRepository.count();

            // 2. 전체 이벤트 리스트 조회
            List<Event> events = eventRepository.findAll();
        }

        @Test
        void delete(){

            // 1. 게시글 조회(1번글) 해서 가져오기
            Event entity = eventRepository.findById((long) 3).get();

            // 2. 게시글 삭제
            eventRepository.delete(entity);
        }
}