SEB_BE_43 / 23.03.06 회고

rse·2023년 3월 6일
0

코드스테이츠_BE_43

목록 보기
47/65

오늘

  • Hamcrest
  • 슬라이드 테스트

Hamcrest

Hamcrest는 JUnit 기반의 단위 테스트에서 사용할 수 있는 Assertion Framework이다.

사용 이유

  • Assertion을 위한 매쳐(Matcher)가 자연스러운 문장으로 이어지므로 가독성이 향상 된다.
  • 테스트 실패 메시지를 이해하기 쉽다.
  • 다양한 Matcher를 제공한다.

예제

Assert의 Equals를 사용했을 때, failed 콘솔 창

Hamcrest의 equalTo를 사용했을 때 failed 콘솔 창

코드

assertThat에 첫번째 파라미터 값은 실제 값(actual) 두번 째 파라미터 값은 기대하는 값, 예상하는 값(expected)

faild 값을 보면 Hamcrest 가 Assertions 보다 더 잘 읽히는 것을 알 수 있다.

JUnit 버전

Hamcrest 버전

슬라이드 테스트

API 계층

MockMve 를 이용해서 편리하게 Tomcat 같은 서버 필요없이 테스트가 가능하다.

gson 을 통해서 Json 타입으로 편하게 변경해준다.

postTest 케이스를 만들어서 post로 값을 넣어준다.
mackMvc.perform ( post )를 사용하면 마치 postman에서 post 를 전송한 기능과 같아진다.

accept 는 Response(응답) 데이터 형식
contenType 는 Request(요청) 데이터 형식
content 는 Requesst(요청) 할 때 작성하는 Body

.andExpect(status() ~ ) 는 기대(예상)하는 Http Status
.andExpect(header().string("Location", is( ~) 는 header부분이 v11/member/ 로 시작하는지

given

테스트를 진행하기 위한 준비 과정
Request Body에 들어 갈 내용

when

테스트를 진행 할 대상
MockMvc로 controller 호출

then

테스트 결과
response Body에 들어갈 내용

데이터 액세스 계층

@DataJpaTest 애너테이션을 붙여주면 MemberRepository 의 기능을 사용하기 위한 Configuration을 Spring이 자동으로 해주게 된다.

또, DataJpaTest 애너테이션 안에는 Transactional 애너테이션도 같이 포함되어 있어,
하나의 테스트 케이스가 완료 되는 시점에 데이터 베이스에 저장되어 있던 데이터를 rollback 해준다.,

[실습 중 일부] API 실습

Patch 하는 부분.

제일 어려웠던 전체조회

controller 에서 page로 값을 받기 때문에 size랑 page 넣어줌.

그리고 $.data.email" 이 부분에서 $ 표시는 json 응답 자체를 얘기하기도 하고 root 최상위를 얘기하기도 한다고 한다. 이건 정해져 있는 규칙.

그리고 data를 왜 붙이냐하면

postman 응답 데이터를 보면 맨 앞에 data : { 라고 되어 있는 것을 볼 수 있다.

그렇기에 data에서 들고 오는 것이다.

profile
기록을 합시다

0개의 댓글