[스프링 입문] - 회원 관리 예제(2)

stephanie·2022년 10월 9일
0

스프링 입문

목록 보기
9/13

회원 도메인과 리포지토리 만들기

<도메인>
src > main > java > hello.hellospring 폴더 하위에 domain 패키지를 생성해 그 아래에 Member class를 생성한다.

<리포지토리>
동일한 폴더 하위에 repository 패키지를 생성해 그 아래에 MemberRepository interface를 생성한다.
** null로 반환되는 것을 Optional로 반환한다.

구현체를 생성하기 위해 동일한 repository 패키지 폴더 하위에 MemoryMemberRepository class를 생성한다.
null이 반환될 가능성이 있으면 Optional로 감싸준다 => 클라이언트에서 작업을 할 수 있게 된다.
findAny(): 하나라도 있으면 반환하는 것

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

main 메소드나 컨트롤러로 테스트하면 어려운 점이 있음
=> JUnit5 프레임워크 활용해서 테스트 케이스 작성하기!

  • @AfterEach: 매 테스트가 끝날 때마다 어떤 동작을 하게 하는 callback method이다.
    이번 코드에서는 테스트가 끝날 때마다 repository를 깔끔하게 지워준다.
    => 테스트가 실행되는 순서와 결과가 상관 없도록
  • @Test annotation을 넣고 리포지토리 구현체에 있는 메소드가 잘 실행되는지 테스트 해본다.
  • Optional에서 값을 꺼낼 때는 .get()으로 얻을 수 있다. (실무에서 권장되는 방법은 아니다.)
  • Assertions.assertEquals: 두 값이 같은지 확인할 수 있음(expected, result)
  • Assertions.assertThat: member가 result와 같은지 확인 가능

test case의 장점은 같이 돌릴 수 있다는 것!
모든 테스트를 같이 돌릴 수도 있고, 따로 돌릴 수도 있다.
테스트는 순서와 관계없이 실행된다. (순서가 보장되지 않는다.)

** 테스트를 먼저 만들어 놓은 후 개발하는 것:
TDD (테스트 주도 개발)

0개의 댓글