테스트 코드 필요성
- 대부분의 서비스 회사가 테스트 코드에 관해 요구
- 프로젝트형 코딩 테스트에 단위 테스트 필수조건 요구
- 테스트 자동화 경험 우대
테스트 코드란?
** TDD vs 단위 테스트(Unit Test) **
TDD
- 테스트가 주도하는 개발
- 테스트 코드를 먼저 작성
- 레드 그린 사이클
- 항상 실패하는 테스트를 먼저 작성: Red
- 테스트가 통과하는 프로덕션 코드를 작성: Green
- 테스트가 통과하면 프로덕션 코드를 리팩토링: Refactor
단위 테스트
- TDD의 첫 번째 단계인 기능 단위의 테스트 코드를 작성하는 것을 의미
- TDD와 달리 테스트 코드를 꼭 먼저 작성할 필요 X, 리팩토링 포함 X
- 순수하게 테스트 코드만 작성하는 것을 의미
테스트 코드를 왜 작성해야 하는가?
- 단위 테스트는 개발단계 초기에 문제를 발견하게 도와준다.
- 단위 테스트는 개발자가 나중에 코드를 리팩토링하거나 라이브러리 업그레이드 등에서 기존 기능이 올바르게 작동하는지 확인할 수 있다
- 단위 테스트는 기능에 대한 불확실성을 감소시킬 수 있다.
- 단위 테스트는 시스템에 대한 실제 문서를 제공한다. 즉, 단위 테스트 자체가 문서로 사용될 수 있다.
테스트 코드를 작성하면 좋은 점
- 톰캣을 내렸다가 다시 실행하는 일을 반복하지 않아도 된다.
- 눈으로 검증(수동검증)하지 않고 테스트 코드로 자동검증이 가능하다.
- 개발자가 만든 기능을 안전하게 보호해준다.( 규모가 큰 서비스에서 새로운 기능이 추가될 때, 기존 기능이 잘 작동되는 것을 보장해준다.)
테스트 코드 작성을 도와주는 프레임워크: xUnit
- 가장 대중적인 테스트 프레임워크
- 개발환경(x)에 따라 Unit 테스트를 도와주는 도구
- JUnit - Java
- DBUnit - DB
- ... 등
'Dev > Spring' 카테고리의 다른 글
[spring-introduction] 스프링부트 프로젝트 셋팅하기 (0) | 2022.09.30 |
---|---|
[스프링 부트와 AWS로 혼자 구현하는 웹 서비스] 스프링 부트 프로젝트에 JPA 적용하기 (0) | 2022.08.02 |
[스프링 부트와 AWS로 혼자 구현하는 웹 서비스] 스프링 부트에서 롬복 도입하기 (0) | 2022.07.11 |
[스프링 부트와 AWS로 혼자 구현하는 웹 서비스] 스프링 부트에서 테스트 코드 작성하기 (0) | 2022.07.11 |
[스프링 부트와 AWS로 혼자 구현하는 웹 서비스] 인텔리제이에서 스프링 부트 프로젝트 시작하기 (0) | 2022.07.07 |