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

ajufresh·2020년 2월 22일
0
post-thumbnail

블로그에 게시하는 위 글은 전체적인 내용 정리가 아닌
책을 읽으면서 새로 알게된 내용이나 제가 중요하다고 생각하는 내용을 정리한 글입니다.

2.1 테스트 코드 소개

TDD

  1. 항상 실패하는 테스트 코드 작성 (RED)
  2. 테스트가 통과하는 프로덕션 코드를 작성 (GREEN)
  3. 테스트가 통과하면 프로덕션 코드를 리팩토링 (REFACTOR)

참고 자료 : TDD 실천법과 도구

단위 테스트

순수하게 기능 단위로 테스트 코드를 작성하는것

단위 테스트의 장점

  1. 개발단계 초기 문제 발견 가능
  2. 회귀 테스트 가능
  3. 기능에 대한 확실성 증가
  4. 시스템에 대한 실제 문서 제공
  5. 빠른 피드백
  6. 기능 자동 검증
  7. 개발자의 기능 보호

2.2 Hello Controller 테스트 코드 작성하기

@WebMvcTest

이 어노테이션을 선언할 경우에 @Controller, @ControllerAdvice는 사용이 가능하지만,
@Service, @Component, @Repository는 사용이 불가능하다.

2.3 롬복 소개 및 설치하기

롬복에 대한 설명과 intelliJ에서 롬복을 설치하는 방법에 대해 소개해주었다.
나는 롬복이 이미 깔려있어서 이 부분은 넘겼다.

2.4 Hello Controller 코드를 롬복으로 전환하기

Junit vs assertj (참고영상)

  1. 추가적인 라이브러리가 필요없다 (ex. CoreMatchers)
  2. 자동완성이 확실하게 지원된다.

테스트 코드 중 이슈가 발생했다.
이슈의 내용은 아래와 같았다. (해결 한 후에 포스팅을 한거라 따로 캡처를 해두지 못했다 ㅠ)

variable name not initialized in the default constructor
private final String name;
^

variable amount not initialized in the default constructor
private final int amount;
^

이런 오류가 발생하는 경우에는 터미널에서 아래 명령어를 실행시켜주면 된다.
윈도우의 경우는 앞의 ./를 빼주면 된다고 한다. (참고)

./gradlew wrapper --gradle-version 4.10.2

profile
공블로그

0개의 댓글