2024.05.25 Today I Learned

ThunderThunder
1 min read

TIL: 2024-05-25 토요일

오늘의 목표

Test Code에 대한 경각심

학습한 내용

  • 이번 creww project에서는 테스트 커버리지 90% 이상이 목표다. 그래서 mock에 대해서 공부했다.

Mocking이란?

  1. Mocking은 테스트 환경에서 의존성을 시뮬레이션하는 기법이다.

  2. 실제 객체 대신 가짜 (Mock) 객체를 사용하여 테스트를 수행한다.

  3. 이를 통해 테스트가 독립적으로 실행되며, 외부 시스템(데이터베이스,네트워크 등)에 의존하지 않고 테스트를 수행할 수 있다.

Mocking의 필요성

  • 독립성 보장: 테스트가 서로 영향을 받지 않도록 한다

  • 속도 향샹: 외부 시스템 접근 없이 빠르게 테스트를 수행할 수 있다.

  • 복잡도 감소: 실제 의존성을 설정하지 않아도 되어 설정이 간단해진다.

  • 정확한 테스트: 외부 의존성의 불확실성을 제거하여 정확한 테스트를 보장한다.

Mockito

Mockito는 java에서 가장 널리 사용되는 Mocking 프레임워크 중 하나다. 간편한 API로 Mock 객체를 생성하고, 다양한 시나리오를 테스트할 수 있다.

Mockito 기본 문법

  1. 의존성 추가

  2. Mock 객체 생성

  1. 메서드 호출 시 행동 지정
when(mockRepository).findById(1L)).thenReturn(Optional.of(new MyEntity)));
  1. 메서드 호출 여부 검증
verify(mockRepository).findById(1L);
0
Subscribe to my newsletter

Read articles from Thunder directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Thunder
Thunder

안녕하세요! Web개발을 공부하고 있는 윤종일 입니다. 현재는 Java 백엔드 개발을 깊게 파고들고 있어요! 제 궁극적인 목표는 풀스택 개발자가 되는 것입니다. 프론트엔드와 백엔드 모두를 자유롭게 넘나들며, 사용자에게 가치를 전달할 수 있는 완성도 높은 애플리케이션을 만드는 것이 목표입니다.