[Spring] 스프링 입문 웹 개발 기초(10)

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

위에 만든 것들이 동작을 하는지 안하는지 확인하기 위해 만든다.

개발한 기능을 자바의 main 메서드나 애플리케이션 컨트롤러 통해 실행하면 오래 걸리고, 반복 실행 어렵고, 여러 테스트 실행 어려운 단점이 있다.

자바는 JUnit이라는 프레임워크로 테스트코드를 만들어서 테스트 코드 자체를 실행해서 문제를 없앴다.

spring28

import mess.hellospring.domain.MemoryMemberRepository;
import org.junit.jupiter.api.Test;

class MemoryMemberRepositoryTest {
    MemberRepository repository = new MemoryMemberRepository();

    @Test
    public void save(){

    }
}

@Test를 붙이게 되면 실행할 수 있다.

spring29

실행해보면 녹색불이 들어오며 아래에 성공했다고 보여진다.

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로 인해 가져온 아이디와 같아야지 저장에 성공했다는 것을 알 수 있다.

spring30

결과는 마찬가지로 성공했다고 뜬다.

Save 테스트(2)

spring31

이 사진을 보면 Assertions의 두번째가 있는데 요즘은 주로 이것을 사용한다.

spring32

사용해보면 이제 빨간색으로 assertThat이 표시된다.

해결하기 위해 마우스 포인터를 올려보면

spring33

여기서 액션 더보기를 클릭해준다.

spring34

spring35

여전히 빨간색이지만 위에 api.Assertions.* 이 import 되었다.

spring36

마지막으로 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);
}

spring37

성공이다.

findByName 테스트

spring38

그 아래 새로운 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);
}

spring39

성공이다.

findAll부턴 알아야할 오류도 있고 내용도 길어져서 한 번 끊고 다음 포스팅으로 가도록 하곘다.

Leave a comment