스프링_핵심_원리 -1

megaseunghan·2022년 3월 31일
0

오늘 배운 것. 테스트 코드 작성

테스트 코드는 선택이 아닌 필수, 개발자는 테스트 코드 작성법을 알아야 한다.

테스트 코드 미적용

import note.deadPerson.member.Grade;
import note.deadPerson.member.Member;
import note.deadPerson.member.MemberService;
import note.deadPerson.member.MemberServiceImpl;

public class MemberApp {


    public static void main(String[] args) {
        MemberService memberService = new MemberServiceImpl();

        Member memberA = new Member(1L, "memberA", Grade.VIP);

        memberService.joinMember(memberA);

        Member findMember = memberService.findMember(1L);

        System.out.println("Member : " + memberA.getName());
        System.out.println("Find Member : " + findMember.getName());
        
    }
}

위 코드는 memberAfindMember가 서로 같은 이름을 가지고 있는지를 확인하는 코드이다.

출력 결과를 보고 둘을 대조해야만 서로 같은지를 알 수 있다.

반면에 테스트 코드를 작성하면 다음과 같이 편리하게 동일한지 알 수 있다.

출력 결과를 보고 둘을 대조해야만 서로 같은지를 알 수 있다. 반면에 테스트 코드를 작성하면 다음과 같이 편리하게 동일한지 알 수 있다.

테스트 코드 작성

import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test;

public class MemberServiceTest {

    MemberService memberService = new MemberServiceImpl();

    @Test
    void join() {
        //given
        Member member = new Member(1L, "memberA", Grade.VIP);

        //when
        memberService.joinMember(member);
        Member findMember = memberService.findMember(1L);

        //then
        Assertions.assertThat(member).isEqualTo(findMember);
    }

}

실행을 해보면 아래와 같이 테스트가 통과됨을 알 수 있다. 굳이 getter를 통해 출력된 문장을 서로 일일히 비교하지 않아도 된다.

![스크린샷 2022-03-17 22.06.06](/Users/mac/Library/Application Support/typora-user-images/스크린샷 2022-03-17 22.06.06.png)

0개의 댓글