카
카카오페이
July 10, 20231회
실무에서 적용하는 테스트 코드 작성 방법과 노하우 Part 1: 효율적인 Mock Test
간단 소개
효율적인 Mock Test를 통해 테스트 코드 작성 생산성을 높이고, 유지보수성을 확보하는 방법을 제시합니다.
AI Summary
- 테스트 코드 작성의 어려움과 해결
- 서비스 복잡도 증가에 따라 테스트 코드의 복잡성도 증가하며, 이는 개발 생산성 저하로 이어진다.
- 초기 단순한 구조에서 외부 의존성이 추가됨에 따라 Mocking 방식의 변화가 필요하다.
- Mock Test 방법과 한계
- Mock Server 기반 테스트는 서비스 환경과 유사하지만 과도한 Mocking으로 생산성이 저하될 수 있다.
@MockBean을 사용하면 객체 행위 Mocking이 가능하지만, Application Context 초기화 문제가 발생할 수 있다.@TestConfiguration을 통해 Mock 객체를 Bean으로 등록하여 Application Context 초기화 문제를 해결할 수 있다.
- 멀티 모듈 환경과 테스트 의존성
- 멀티 모듈 환경에서는
java-test-fixtures플러그인을 사용하여 테스트 의존성을 제공할 수 있다. - 테스트를 쉽게 하기 위해 운영 코드 설계를 변경하는 것은 바람직하지 않으며, 테스트 의존성을 실제 구현 코드 영역과 분리해야 한다.
- 멀티 모듈 환경에서는
- 테스트 불가능 영역의 격리
- 테스트 코드 작성이 어려운 Black Box 영역은 전이되지 않도록 격리해야 한다.
- Black Box 영역을 격리함으로써 다른 영역은 테스트 가능한 상태로 유지할 수 있다.
Next Feeds
![[여기보기] WAS의 정보는 개인정보 다루듯이 보호하라](https://netmarble.engineering/wp-content/uploads/2023/07/preview.png)
[여기보기] WAS의 정보는 개인정보 다루듯이 보호하라
WAS 정보는 개인정보처럼 중요하게 다뤄야 하며, 불필요한 파일 제거, HTTP 응답 헤더 수정, HTTP 상태 코드 메시지 관리 등을 통해 보호할 수 있다.
WAS보안HTTP 응답 헤더HTTP 상태 코드정보 보호
2023. 7. 5.
넷마블

서비스 기획자의 뷰티컬리로 확장하기
컬리의 뷰티컬리 확장 과정에서 서비스 기획자의 역할과 우선순위 설정, 협업 전략을 분석합니다.
뷰티컬리서비스 기획분할 정복고객 여정협업
2023. 7. 5.
컬리

사운드 리소스 전달 WebApp 만들기
게임 리소스 전달을 위한 Web App 개발 경험 공유: 단순한 설계로 사용자 부담을 줄이고 효율적인 버전 관리를 가능하게 함.
리소스 전달버전 관리Web AppNext.jsGit
2023. 7. 4.
데브시스터즈

2023년 상반기, 우리는 정말 큰 과자를 선물로 받았습니다.
올리브영 디지털 사업본부에서 준비한 깜짝 과자 선물 이벤트를 통해 즐거운 회사 분위기를 공유하고, 팀워크를 다지는 모습이 담겨있다.
올리브영디지털 사업본부과자 선물팀워크기업 문화
2023. 6. 30.
올리브영

반응형 프로그래밍 with RxJS
RxJS를 활용한 반응형 프로그래밍은 비동기 작업의 복잡성을 줄이고 데이터 흐름을 효과적으로 관리하여 코드의 가독성과 유지보수성을 향상시킨다.
반응형 프로그래밍RxJSObservableOperator비동기 처리
2023. 6. 30.
테이블링
CRM TFT 후기
사람인은 CRM TFT를 통해 Airbridge, Braze, Amplitude를 도입하여 데이터 분석, 마케팅 자동화, 사용자 행동 분석을 강화하고 고객 경험을 개선했습니다.
CRMAirbridgeBrazeAmplitude마케팅 자동화
2023. 6. 27.
사람인