[Spring] 스프링 입문 웹 개발 기초(10)
회원 리포지토리 테스트 케이스 작성 1
위에 만든 것들이 동작을 하는지 안하는지 확인하기 위해 만든다.
개발한 기능을 자바의 main 메서드나 애플리케이션 컨트롤러 통해 실행하면 오래 걸리고, 반복 실행 어렵고, 여러 테스트 실행 어려운 단점이 있다.
자바는 JUnit이라는 프레임워크로 테스트코드를 만들어서 테스트 코드 자체를 실행해서 문제를 없앴다.
import mess.hellospring.domain.MemoryMemberRepository;
import org.junit.jupiter.api.Test;
class MemoryMemberRepositoryTest {
MemberRepository repository = new MemoryMemberRepository();
@Test
public void save(){
}
}
@Test를 붙이게 되면 실행할 수 있다.
실행해보면 녹색불이 들어오며 아래에 성공했다고 보여진다.
Save 테스트
이제 정확한 코드를 테스트 해보겠다.
import mess.hellospring.domain.Member;
import mess.hellospring.domain.MemoryMemberRepository;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
class MemoryMemberRepositoryTest {
MemberRepository repository = new MemoryMemberRepository();
@Test
public void save(){
Member member = new Member();
member.setName("spring");
repository.save(member);
Member result = repository.findById(member.getId()).get();
Assertions.assertEquals(member, result);
}
}
member을 새로 만들고 이름을 spring으로 설정한다.
여기서 확인하는 것은 위에서 spring으로 저장한 멤버가 getId로 인해 가져온 아이디와 같아야지 저장에 성공했다는 것을 알 수 있다.
결과는 마찬가지로 성공했다고 뜬다.
Save 테스트(2)
이 사진을 보면 Assertions의 두번째가 있는데 요즘은 주로 이것을 사용한다.
사용해보면 이제 빨간색으로 assertThat이 표시된다.
해결하기 위해 마우스 포인터를 올려보면
여기서 액션 더보기를 클릭해준다.
여전히 빨간색이지만 위에 api.Assertions.* 이 import 되었다.
마지막으로 static 메서드 추가를 누르고 4번째를 선택하면 된다.
@Test
public void save(){
Member member = new Member();
member.setName("spring");
repository.save(member);
Member result = repository.findById(member.getId()).get();
//Assertions.assertEquals(member, result);
assertThat(member).isEqualTo(result);
}
성공이다.
findByName 테스트
그 아래 새로운 findByName()을 만들어주고 member1을 쭉 적은다음 아래에 복사하면 그대로 member1로 복사가 된다.
꿀팁 : 이를 한번에 바꾸기 위해 Shift + F6 단축키를 이용하면 한 번에 바꿔줄 수 있다
이제 두개의 spring1, spring2를 회원가입 시켰으니 이름을 찾아본다.
spring1을 찾고 그것이 member1과 같은지 검색해본다.
@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);
}
성공이다.
Leave a comment