이전에 만든 클래스가 내가 원하는대로 정상적으로 동작할까?

검증하는 방법에 대해 배워보았다 

코드를 코드로 검증하기!


  JUnit프레임워크로 테스트 실행하기!

package hello.hellospring.repository;

import hello.hellospring.domain.Member;
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.Assertions.*;

public class MemoryMemberRepositoryTest {

    MemoryMemberRepository repository = new MemoryMemberRepository();

    @AfterEach
    public void afterEach() {
        repository.clearStore();
    }
    	//하나의 메서드 테스트가 끝나면 데이터를 지워주는 메서드

    @Test
    public void save() {
        Member member = new Member();
        member.setName("Spring");
			//멤버클래스의 Name을 스프링으로 설정
        repository.save(member);
			//MemoryMemberRepository클래스로 만든 repository에 save함수에 만든 member를 매개변수로줌
        Member result = repository.findById(member.getId()).get();
        	//result라는 객체생성 하고 findById에 member의 id로 준다! get은 옵셔널 타입에서 꺼내는 함수
        assertThat(member).isEqualTo(result);
        	//두 값이 같으면 참이다
    }
    
    

    @Test
    public void findByName(){
        Member member1 = new Member();
        member1.setName("spring1");
        repository.save(member1);
       		//member1 객체 생성 후 save!

        Member member2 = new Member();
        member2.setName("spring2");
        repository.save(member2);
        	//member2 객체 생성 후 save!

        Member result = repository.findByName("spring1").get();
        	// result 객체 생성 후 spring1찾아 받는다
        assertThat(result).isEqualTo(member1);
        	// member1 과 result가 동일한지 확인
    }

    @Test
    public void findAll(){
        Member member1 = new Member();
        member1.setName("spring1");
        repository.save(member1);
        //member1 객체 생성 후 save

        Member member2 = new Member();
        member2.setName("spring2");
        repository.save(member2);
		//member2 객체 생성 후 save
        
        List<Member> result = repository.findAll();
			//result에 다 넣어줌
        assertThat(result.size()).isEqualTo(2);
        	//2개 생성했으니 사이즈와 같아야하는지 비교하는코드
    }
}

이전에 작성했던 MemoryMemberRepository에

public void clearStore(){
store.clear();
}

이코드를 추가해주며 afterEach()

메서드를 생성할 수 있다!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'웹프로그래밍 > Spring 입문' 카테고리의 다른 글

9. 회원 서비스 테스트  (0) 2021.06.21
8. 회원 서비스 개발  (0) 2021.06.19
6. 회원 도메인과 리포지토리 만들기  (0) 2021.06.17
5. 비즈니스 요구사항 정리  (0) 2021.06.17
4. API  (0) 2021.06.17

+ Recent posts