[이론] 단위테스트

·2024년 1월 23일

IT 기초 공부

목록 보기
4/4

다음 프로젝트에 적용하기 위해 단위 테스트 관련 내용 정리
참고 후 다음 프로젝트에 적용하세요

단위테스트
https://mangkyu.tistory.com/143

Junit : spring-boot-test
mock 객체 : 모조품 / 테스트 프레임워크를 사용하여 Mock 객체로 테스트를 용이하게 만들 수 있다 / 객체를 구체화시킬 수 있는 도구 : Mockito 프레임워크
stub : 객체 대신에 가짜 Mock object 를 주입하여 어떤 결과를 반환하라고 정해진 답변을 준비시켜야 하는데, 이를 stub 이라고 한다. => insert 처리 시에 반드시 1을 반환하도록 해 주는 것이 stub 이다.

clean 코드를 작성하기 위한 노력
또한 좋고 깨끗한 테스트 코드는 FIRST라는 5가지 규칙을 따라야 한다.
Fast: 테스트는 빠르게 동작하여 자주 돌릴 수 있어야 한다.
Independent: 각각의 테스트는 독립적이며 서로 의존해서는 안된다.
Repeatable: 어느 환경에서도 반복 가능해야 한다.
Self-Validating: 테스트는 성공 또는 실패로 bool 값으로 결과를 내어 자체적으로 검증되어야 한다.
Timely: 테스트는 적시에 즉, 테스트하려는 실제 코드를 구현하기 직전에 구현해야 한다.
(위의 내용들은 CleanCode 책에서 참고한 내용들입니다.)

자바 코드 단위테스트 하기
https://mangkyu.tistory.com/144

테스트 주도 개발 TDD
TDD(Test-Driven Development, 테스트 주도 개발) 에서 얘기하는 테스트도 단위 테스트를 의미

단위테스트의 필요성
일반적으로 실무에서 테스트 코드를 작성한다고 하면 거의 단위 테스트를 의미한다. 통합 테스트는 실제 여러 컴포넌트들 간의 상호작용을 테스트하기 때문에 모든 컴포넌트들이 구동된 상태에서 테스트를 하게 된다. 그렇기에 통합 테스트를 위해서는 캐시나 데이터베이스 등 다른 컴포넌트들과 실제 연결을 해야 하고, 시스템을 구성하는 컴포넌트들이 많아질수록 테스트를 위한 비용(시간)이 상당히 커진다. 반면에 단위 테스트는 해당 부분만 독립적으로 테스트하기 때문에 어떤 코드를 리팩토링하여도 빠르게 문제 여부를 확인할 수 있다.

profile
자바 백엔드 개발자 개인 위키

0개의 댓글