회원 도메인 실행과 테스트

Sunny·2023년 3월 7일
0

✨ 스프링 핵심 원리 - 기본편


🔅 목차


✅섹션2. 스프링 핵심 원리 이해1 - 예제 만들기

#1 프로젝트 생성
#2 비즈니스 요구사항과 설계
#3 회원 도메인 설계
#4 회원 도메인 개발
#5 회원 도메인 실행과 테스트
#6 주문과 할인 도메인 설계
#7 주문과 할인 도메인 개발
#8 주문과 할인 도메인 실행과 테스트

🌱 회원 도메인 - 회원 가입 main

회원 가입 테스트를 위해 MemberApp 클래스를 하나 만들어서 main 메소드를 돌려서 테스트해본다.

public class MemberApp {

    public static void main(String[] args) {
        MemberService memberService = new MemberServiceImpl();
        Member member = new Member(1L, "memberA", Grade.VIP);
        memberService.join(member);

        Member findMember = memberService.findMember(1L);
        System.out.println("new member = "+member.getName());
        System.out.println("find member = "+findMember.getName());
    }
}
  • id가 1번(type: Long)이고, 이름이 memberA이며, 등급이 VIP인 멤버의 회원가입이 정상적으로 되는지 테스트한다.
  • 회원 조회는 정상적으로 되는지 테스트 한다.

결과는 정상이다.

하지만 이렇게 애플리케이션 로직으로 테스트하는 것은 좋은 방법이 아니다.
JUnit 테스트를 사용하자.


🌱 회원 도메인 - 회원 가입 Test

경로 : src/test/java/hello/core/member/MemberServiceTest/MemberServiceTest.java

JUnit을 이용하여 회원 가입과 회원 조회가 잘 되는지 테스트해본다.

public class MemberServiceTest {

    MemberService memberService = new MemberServiceImpl();

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

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

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

테스트 실행 결과 정상이다.


🌱 회원 도메인 설계의 문제점

  • 과연 이 설계는 다른 저장소로 변경할 때 OCP 원칙을 잘 지키고 있을까?
  • DIP를 잘 지키고 있을까?
  • 의존관계가 인터페이스 뿐만 아니라 구현까지 모두 의존하는 문제점이 있다.
    이와 관련해서 주문까지 만들고 나서 문제점과 해결 방안을 알아보자.
profile
개발에 재미를 붙여보기 :)

0개의 댓글