테스트란?
프로그램의 품질을 검증하는 것으로, 의도대로 프로그램이 잘 동작하는지 확인하는 과정.
현재는 테스트 도구를 통해 반복적인 검증 절차를 자동화할 수 있다.
또한, 다양한 문제를 미리 예방하고 코드 변경 드응로 인해 발생하는 부작용도 조기에 발견할 수 있다.
테스트 도구를 활용해 코드를 검증 ( = 테스트 코드를 작성해 실행함) 3단계
1. 예상 데이터 작성하기
2. 실제 데이터 획득하기
3. 예상 데이터와 실제 데이터 비교해 검증하기
3단계가 끝나고 나서!!
작성한 코드가 테스트를 통과 ☞ 지속적인 리팩터링으로 코드를 개선해야 함.
테스트를 통과X ☞ 디버깅(잘못된 부분을 찾아 고치는 행위) 필요
테스트 케이스 (test case)
: 테스트 코드는 다양한 경우를 대비해 작성.
: 성공뿐만 아니라, 실패할 경우도 고려해야한다.
테스트 주도 개발(TDD, Test Driven Development)
: 테스트 코드를 만들고, 이를 통과하는 최소한의 코드부터 시작해 점진적으로 코드를 개선 및 확장해 나가는 개발 방식
1) 실패하는 테스트 코드를 추가한다.
2) 테스트 성공을 위한 최소한의 코드를 작성한다.
3) 테스트 통과를 유지하며 코드를 개선한다.
테스트를 통한 코드 검증과 리팩터링은 개발자의 기본 소양이다.
이를 기반으로 한 개발 방법론인 테스트 주도 개발 또한 개발의 핵심 패러다임으로 자리 잡고 있다.
테스트 코드 작성하기 : Article Service 검증하는 테스트 코드 만들기
먼저 index 메서드 테스트하기
@DisplayName("테스트 결과에 보여 줄 이름") : 테스트 이름을 붙일 때 사용, 기본적으로 테스트 이름은 메서드 이름을 따라가는데 메서드 이름은 그대로 둔 채 테스트 이름을 바꾸고 싶을 때 사용
data.sql이란 파일과 다른 내용으로 데이터를 넣고 asList로 묶고 돌렸지만 에러 .
'Backend > Spring' 카테고리의 다른 글
[Spring] 인텔리제이 intellij에서 gradle 빌드로 바꿨을 때 오류 (0) | 2023.08.29 |
---|---|
[Spring] 댓글 엔티티와 리파지터리 만들기 (진행 중) (1) | 2023.08.29 |
[Spring] 서비스 계층과 트랜젝션* (1) | 2023.08.29 |
[Spring] REST API로 CRUD 구현하기 (+ 실습)* (1) | 2023.08.27 |
[Spring] REST API와 JSON (실습 내용 추가 필요) (0) | 2023.08.27 |