Spring/inflearn

회원 repository 테스트 케이스 작성

곽수진 2022. 8. 23. 03:00
반응형

▶ src/test/java/hello.hellospring.repository 패키지를 생성하고 MemoryMemberRepositoryTest 파일 생성

@AfterEach : 한번에 여러 테스트를 실행하면 메모리 DB에 직전 테스트의 결과가 남아 다음 테스트가 실패할 수 있는데, 이 문제점을 해결하고자 테스트가 종료될 때마다 기능을 수행하고 메모리 DB에 저장된 데이터를 삭제

Assertions.assertThat(member).isEqualTo(result) : member에 저장된 값과 result에 저장된 값이 동일(참)한지 판단

 

package hello.hellospring.repository;

import hello.hellospring.domain.Member;
//import org.junit.jupiter.api.Assertions;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Test;

import java.util.List;

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

public class MemoryMemberRepositoryTest {

    MemoryMemberRepository repository = new MemoryMemberRepository();

    @AfterEach
    public void afterEach(){
        repository.cleareStore(); // 테스트가 끝날 때마다 저장소 지움
    }

    @Test
    public void save(){
        //given
        Member member = new Member();
        member.setName("spring");

        //when
        repository.save(member);

        //then
        Member result = repository.findById(member.getId()).get();
        //Assertions.assertEquals(result, member);
        Assertions.assertThat(member).isEqualTo(result);
    }

    @Test
    public void findByName(){
        //given
        Member member1 = new Member();
        member1.setName("spring1");
        repository.save(member1);

        Member member2 = new Member();
        member2.setName("spring2");
        repository.save(member2);

        //when
        Member result = repository.findByName("spring1").get();

        //then
        assertThat(result).isEqualTo(member1);
    }

    @Test
    public void findAll(){
        //given
        Member member1 = new Member();
        member1.setName("spring1");
        repository.save(member1);

        Member member2 = new Member();
        member2.setName("spring2");
        repository.save(member2);

        //when
        List<Member> result = repository.findAll();

        //then
        assertThat(result.size()).isEqualTo(2);
    }
}
반응형

'Spring > inflearn' 카테고리의 다른 글

회원 서비스 테스트  (0) 2022.08.25
회원 서비스 개발  (0) 2022.08.24
회원 domain과 repository 만들기  (0) 2022.08.22
API  (0) 2022.08.21
MVC와 템플릿 엔진  (0) 2022.08.20