회원 관리 예제 - 회원 리포지토리 테스트 케이스 작성

장서연·2022년 1월 2일
0

스프링 입문

목록 보기
11/25

회원 리포지토리 테스트 케이스 작성

개발한 기능을 테스트할 때 자바의 main메서드를 실행하거나, 웹 애플리케이션의 컨트롤러를 통해 해당 기능을 테스트해볼 수 있다. 이러한 방법은 준비하고 실행하는데 오래 걸리고, 반복 실행하기 어렵고 여러 테스트를 한번에 실행하기 어렵다는 단점이 있다. 자바는 JUnit이라는 프레임워크로 테스트를 실행해서 이러한 문제를 해결한다.

회원 리포지토리 메모리 구현체 테스트

src/test/java 하위 폴더에 생성
하나의 테스트가 끝날 때마다, store 의 내용을 clear 해주어야 한다. 그래야지 순서에 종속되지 않게 테스트를 진행할 수 있다.

package com.hello.hellospring.repository;

import com.hello.hellospring.domain.Member;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;

import java.util.List;

public class MemoryMemberRepositoryTest {
    MemoryMemberRepository repository = new MemoryMemberRepository();

    // 하나의 테스트가 끝날 때마다, repository 를 깔끔하게 지워주는 로직을 넣어야함
    @AfterEach
    public void afterEach(){
        repository.clearStore();
    }

    @Test
    public void save(){
        Member member = new Member();
        member.setName("서연이");

        repository.save(member);

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

    @Test
    public void findByName(){
        Member member1 = new Member();
        member1.setName("장서연");
        repository.save(member1);

        Member member2 = new Member();
        member2.setName("장문채");
        repository.save(member2);

        Member result = repository.findByName("장문채").get();
        Assertions.assertEquals(member2, result);


    }
    @Test
    public void findAll(){
        Member member1 = new Member();
        member1.setName("연폰");
        repository.save(member1);

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

        List<Member> result = repository.findAll();
        Assertions.assertEquals(result.size(), 2);

    }
}

0개의 댓글