@Test
public void save() {
Member member = new Member();
member.setName("spring");
repository.save(member);
Member result = repository.findById(member.getId()).get();
assertThat(member).isEqualTo(result);
}
@Test 어노테이션 명시
MemoryMemberRepository 클래스의 save() 메서드를 테스트 하는 메서드다.
domain 폴더의 member 객체 생성하고 member의 이름을 spring으로 지정
미리 작성했던 save() 안에 파라미터로 이름이 spring으로 지정된 member를 넣고 실행
방금 만들었던 member의 id 값을 가져와 result에 담는다.
assertThat(member).isEqualTo(result);
Junit에서 사용하는 assertThat() 으로 테스트 할 수 있다.
import static org.assertj.core.api.Assertions.assertThat;
이를 사용하기 위해서 이 문장으로 assertThat을 import하고 그중 사용할 수 있는 다양한 메소드중 isEqualTo()를 사용
@Test
public void findByName(){
Member member1 = new Member();
member1.setName("spring1");
repository.save(member1);
Member member2 = new Member();
member2.setName("spring2");
repository.save(member2);
Member result = repository.findByName("spring1").get();
assertThat(result).isEqualTo(member1);
}
@Test
public void findAll(){
Member member1 = new Member();
member1.setName("spring1");
repository.save(member1);
Member member2= new Member();
member2.setName("spring2");
repository.save(member2);
List<Member> result = repository.findAll();
assertThat(result.size()).isEqualTo(2);
}
위와 같이 앞선 클래스에서 만든 메소드들을 테스트 할 수 있다.
여러개의 테스트는 한꺼번에 실행할 수 있지만, 위에서부터 아래로 실행된다는지하는 순서는 보장되지않는다.
그래서 하나의 테스트가 끝나고 메모리에 남아있으면 다른 테스트에까지 영향을 받을 수 있다.
하나가 끝나면 메모리를 깨끗하게 비워주는 메소드를 사용
public void clearStore(){
store.clear();
}
테스트 클래스에는 @AfterEach 어노테이션을 명시하고 아래와 같이 작성
@AfterEach
public void afterEach(){
repository.clearStore();
}