UseCase 2

UseCase와 Repository를 테스트하면서 느낀 점.

UseCase와 Repository를 테스트하면서 느낀 것들 해당 형태의 구조의 프로젝트에서 테스트코드를 작성하면서 학습하고 느낀점들을 정리. 글의 순서UseCase 테스트 목적Repository 테스트 목적Repository 테스트 하기SearchSubwayUseCaseTests 실패 후 로직 보완테스트에 대한 생각 정리 안드로이드 공식 앱 아키텍처 가이드를 확인하면서 UseCase 영역에 해당하는 Domain이 Optional로 되어 있음을 확인할 수 있었음.개인 경험에 의하면 실제로 UseCase에서 특별한 처리 없이 사실상 래핑에만 해당하는 경우도 많긴 함. 일반적인 상황에서는 Domain Optional 이어도 나쁘지 않겠지만, 기능이 하나 둘 추가되면서 Repository가 두꺼워지고결국은 U..

지하철 검색 기능에 캐싱 로직 도입하고 테스트로 검증하기

지하철 검색 기능에 캐싱 로직 도입하고 테스트로 검증하기 지하철 검색 로직에 캐싱 로직을 도입. 목차SearchSubwayUseCase 개선SearchSubwayUseCase 테스트를 위한 Spy 객체 만들기SearchSubwayUseCaseTests 캐싱 로직 동작 검증 코드SearchSubwayUseCaseTests 실패 후 로직 보완보강한 테스트: 실패 응답과 백그라운드 방출 지하철 검색 로직은 사용자가 키보드로 검색어를 입력할 때 throttle을 활용해 약간의 시간을 두고 검색을 실행.여기까지는 일반적으로 사용하는 검색 로직. 같은 검색어에 대한 서버 요청을 줄이고, 동일한 결과를 더 빨리 돌려줄 수 있으므로 이점은 확실. 캐시가 throttle과 겹치는 지점도 있음. throttle이 요청 자..