이전에 만든 클래스가 내가 원하는대로 정상적으로 동작할까?
검증하는 방법에 대해 배워보았다
코드를 코드로 검증하기!
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 |