02 스프링 부트에서 테스트 코드를 작성하자

김세호·2023년 6월 13일
0

채용정보 우대사항

코딩 테스트를 알고리즘이 아니라 프로젝트를 만들고, 단위 테스트를 필수조건으로 하는 회사가 늘어나는 추세

TDD : 테스트가 주도하는 개발?

  • 항상 실패하는 테스트를 먼저 작성
  • 테스트가 통과하는 프로덕션 코드를 작성
  • 테스트가 통과하면 프로덕션 코드를 리팩토링

반면 단위 테스트는 TDD의 첫 번째 단계인 기능 단위의 테스트 코드를 작성하는 것을 이야기한다. 즉, 순수하게 테스트 코드만 작성하는 것.

단위 테스트 코드를 작성함으로써 장점
1. 빠른피드백으로 시간 절약 가능
2. 테스트 코드를 작성하면 사람의 눈으로 검증하지 않고 자동검증이 가능.
3. 개발자가 만든 기능을 안전하게 보호
예를들어, B라는 기능이 추가되어 테스트하고 오픈했더니 기존에 잘되던 A 기능에 문제 생김. 즉, 단위 테스트를 함으로써 기존 기능이 잘 작동하는 것을 보장.

롬복

자바 개발자들의 필수 라입브러리 중 하나로써 자주 사용하는 코드인 Getter,Setter, 기본생성자,toString 등을 어노테이션으로 자동 생성해준다. 이클립스에서는 롬복 설치가 번거롭지만, 인텔리제이에선 플러그인 덕분에 쉽게 설정이 가능하다.

build.gradle 에
compile('org.projectlombok:lombok') 코드를 추가한다.









@RequestParam

  • 외부에서 API로 넘긴 파라미터를 가져오는 어노테이션
  • 여기서 외부에서 name(@RequestParam("name"))이란 이름으로 넘긴 파라미터를 메소드 파라미터 name(String name)에 저장하게 됨

name과 amount는 API를 호출하는 곳에서 념겨준 값들. 추가된 API를 테스트하는 코드를 HelloControllerTest에 추가한다.

param

  • API 테스트 할 때 사용될 요청 파라미터를 설정한다.
  • 단, 값은 *String만 허용됨
  • 그래서 숫자/날짜 등의 데이터도 등록할 떄는 문자열로 변경해야만 가능하다.

jsonPath

  • JSON 응답값을 필드별로 검증할 수 있는 메소드입니다.
  • $를 기준으로 필드(클래스 내부?? 다시 찾아보기)명을 명시
  • ($.name, $.amount로 검증)

0개의 댓글