테스트 코드
테스트의 필요성
테스트는 무엇이고, 테스트가 필요한 이유는 무엇일까요?
1) 개발은 어려운 일입니다.
- '버그' (bug) 란?(출처: 위키백과)
소프트웨어가 예상하지 못한 결과를 내는 것 입니다.
버그는 '소스 코드' 나 '설계과정에서의 오류' 때문에 발생합니다.
2) 개발 코드 배포 전, 버그를 (최대한 많이) 찾아내는 법 - 테스트!
- 블랙박스 테스팅
블랙박스 테스팅이란 소프트웨어 내부 구조나 동작원리를 모르는 블랙박스와 같은 상태에서, 즉 웹 서비스의 사용자 입장에서 동작을 검사하는 방법입니다.
- 장점
- 누구나 테스트가 가능합니다 - 개발자부터 디자이너, 베타 테스터 혹은 사장님까지!
- 단점
- 기능이 증가될수록 테스트의 범위가 증가합니다.
- 시간이 갈수록 테스트하는 사람이 계속 늘어나야함
- 테스트 하는 사람에 따라 테스트 퀄리티가 다를 수 있습니다. -> QA 직군이 있는 이유
- 개발자 테스트
개발자가 직접 "본인이 작성한 코드"를 검증하기 위해 "테스트 코드"를 작성합니다.
- 장점
- 빠르고 정확한 테스트가 가능합니다. (예상 동작 VS 실제 동작)
- 테스트 자동화가 가능합니다.
- 배포 절차 시 테스트 코드가 수행되어 동작 검증
- 리팩토링이나 기능 추가를 할 때 더욱 편리합니다.
- 단점
- 개발 시간이 오래 걸림
- 테스트 코드를 유지보수하는 비용
Spring에서는 '테스트 코드' 작성을 잘 할수 있는 환경을 제공해줍니다.
JUnit
JUnit이란 자바 프로그래밍 언어 용 단위 테스트 프레임워크입니다.

- build.gradle 파일을 열어보면 JUnit 사용을 위한 환경설정이 이미 되어있습니다.
- 자바는 반드시 main( ) 메서드로 시작해 main( ) 메서드로 끝난다고 배우셨을 겁니다.
- JUnit은 테스트 실행 환경을 가지고 있기 때문에 따로 main( ) 메서드를 실행하거나 서버를 실행시키지 않아도 이렇게 각각의 메서드 혹은 기능별로 테스트 코드를 작성하여 실행시킬 수 있습니다.