[SpringBoot] 테스트 코드란?

김인겸·2022년 8월 21일
0
post-thumbnail

📎테스트 코드 소개

기능을 개발했을 때 잘 구현되었는지 어떻게 확인할 수 있을까? 바로 테스트다. 기능을 개발한 후 잘 구현되었는 지 테스트 코드를 작성하고 리팩토링을 통해 향상시킬 수 있다. 개발자가 의도한 대로 정확히 작동하는 지 검증하는 절차인 것이다.

❗TDD와 단위 테스트

TDD는 테스트가 주도하는 개발을 이야기한다. 테스트 코드를 먼저 작성하는 것부터 시작하는 것이다.

테스트 코드-1

  • 항상 실패하는 테스트를 먼저 작성하고 (Red)
  • 테스트가 통과하는 프로덕션 코드를 작성하고 (Green)
  • 테스트가 통과하면 프로덕션 코드를 리팩토링한다(Refactor)

반면, 단위 테스트는 TDD의 첫 번째 단계인 기능 단위의 테스트 코드를 작성하는 것을 이야기한다. TDD와 달리 테스트 코드를 꼭 먼저 작성해야 하는 것도 아니고, 리팩토링도 포함되지 않는다. 순수하게 테스트 코드만 작성하는 것을 이야기한다.

  • 단위 테스트는 개발단계 초기에 문제를 발견하게 도와준다.
  • 단위 테스트는 개발자가 나중에 코드를 리팩토링하거나 라이브러리 업그레이드 등에서 기존 기능이 올바르게 작동하는 지 확인할 수 있다.(예, 회귀 테스트)
  • 단위 테스트는 기능에 대한 불확실성을 감소시킬 수 있다.
  • 단위 테스트는 시스템에 대한 실제 문서를 제공한다. 즉, 단위 테스트 자체가 문서로 사용될 수 있다.
  • System.out.println과 같이 출력된 데이터를 눈으로 검증할 필요가 없어진다.

테스트 코드 작성을 도와주는 프레임워크들이 있다. 가장 대중적인 테스트 프레임워크로 xUnit이 있는데 이는 개발환경(x)에 따라 Unit테스트를 도와주는 도구라고 생각하면 된다. 대표적인 xUnit 프레임워크들은 다음과 같다.

  • JUnit - Java
  • DBUnit - DB
  • CppUnit - C++
  • NUnit - .net

이 중에서 자바용인 JUnit을 앞으로 사용하겠다.

이동준, ⌜스프링 부트와 AWS로 혼자 구현하는 웹 서비스⌟, 이동욱, 2019년, 2장

profile
자바 백엔드 개발자입니다.

0개의 댓글