일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 플러터 개발환경 설정
- 플러터
- php 프로그래밍 입문 연습문제
- 자바 스프링
- JAVA SPRING
- spring
- php
- 페이코 추천인
- php 프로그래밍 입문 예제
- 페이코 초대코드
- C언어
- php 프로그래밍
- 스프링
- 최단 경로
- SWEA
- 배열
- C
- 파이썬
- 자바
- 페이코 추천인코드
- 백준
- Flutter
- php 프로그래밍 입문
- Java
- programmers
- 페이코 친구코드
- php 프로그래밍 입문 3판
- 한정 분기
- php 프로그래밍 입문 문제풀이
- php 프로그래밍 입문 솔루션
Archives
- Today
- Total
11-08 03:45
ImJay
[Java Spring] 2-11. 회원 도메인 실행과 테스트 본문
반응형
[Java Spring] 2-11. 회원 도메인 실행과 테스트
1. 앞서 클래스 다이어그램은 정적이고, 객체 다이어그램은 동적이라고 설명한 바 있다.
2. 이전 시간 클래스 다이어그램을 바탕으로 프로그램을 작성하였다. 이번에는 실행과 테스트로 객체 다이어그램에 대한 프로그램을 제작해보자.
3. hello.core 패키지 내에 MemberApp 클래스 생성
4. 코드 작성
package hello.core;
import hello.core.member.Grade;
import hello.core.member.Member;
import hello.core.member.MemberService;
import hello.core.member.MemberServiceImpl;
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());
}
}
- main 메서드의 단축키는 psvm 이다.
- id 에 L을 붙인건 Long Type 이기 때문이다.
- 변수 선언 단축키 ctrl + alt + v
- 변수 출력 단축키 soutv
5. 빌드
- 본 코드는 스프링 사용 없이 순수하게 자바 코드로만 작성되었다.
- 순수한 자바로만 개발되었다.
- 메인 메서드로 테스트 확인은 좋은 방법이 아니다.
6. test > java > hello.core 패키지 내에 member 패키지 생성
7. MemberServiceTest 클래스 생성
8. 코드 작성
package hello.core.member;
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.join(member);
Member findMember = memberService.findMember(1L);
//then
Assertions.assertThat(member).isEqualTo(findMember);
}
}
9. 빌드
- 메인 메서드로 테스트 하는 것에 비해 훨씬 직관적이고 간단하게 테스트를 확인할 수 있다.
- 테스트 코드는 선택이 아닌 필수이고, 테스트 코드를 잘 작성하는게 매우 중요하다.
10. 회원 도메인 설계의 문제점
- 이 코드의 설계상 문제점은 무엇일까요?
- 다른 저장소로 변경할 때 OCP 원칙을 잘 준수할까요?
- DIP를 잘 지키고 있을까요?
- 의존관계가 인터페이스 뿐만 아니라 구현까지 모두 의존하는 문제점이 있음
- 주문까지 만들고나서 문제점과 해결 방안을 설명
반응형
'Java Spring > 스프링 핵심 원리 - 기본편' 카테고리의 다른 글
[Java Spring] 2-13. 주문과 할인 도메인 개발 (0) | 2023.02.27 |
---|---|
[Java Spring] 2-12. 주문과 할인 도메인 설계 (0) | 2023.02.27 |
[Java Spring] 2-10. 회원 도메인 개발 (0) | 2023.02.20 |
[Java Spring] 2-9. 회원 도메인 설계 (0) | 2023.02.20 |
[Java Spring] 2-8. 비즈니스 요구사항과 설계 (0) | 2023.02.17 |
Comments