1. 개요mocktail을 이용하여 테스트 코드를 작성하던 중 마주친 오류와 해결 방안에 대해 서술했습니다. 2. 문제 상황현재 제 아키텍처는 다음과 같은 계층 구조로 데이터가 흐릅니다. DataSource -> Repository -> UseCase -> ViewModel 먼저 DataSource에서 외부 API와 통신을 하고,그 결과를 Repository에 반환한 후,UseCase, ViewModel로 이어지는 구조입니다. 문제는 Repository 테스트 코드를 작성하던 중 다음과 같은 오류가 발생했습니다.Bad state: A test tried to use `any` or `captureAny` on a parameter of type `DreamDto`, butregisterFallback..
1. 프로젝트 소개Flicksy는 Flutter로 개발된 영화 정보 앱으로, TMDB(The Movie Database) API를 활용하여 현재 상영 중인 영화, 인기 영화, 평점 높은 영화, 개봉 예정 영화 등의 정보를 제공합니다. 사용자는 영화의 포스터, 개봉일, 영화 설명, 장르, 흥행 정보, 제작사 로고 등 다양한 세부 정보를 확인할 수 있습니다. 2. 주요 기능 TMDB 영화 데이터 연동 클린 아키텍처 기반 구조 당겨서 새로고침(Pull to refresh) Riverpod을 활용한 상태 관리 영화 상세 페이지에서 다양한 정보 제공 .env 파일을 통한 API 키 관리화면 이동시 Hero 애니메이션 3. 프로젝트 구조lib/├── feature/ # 기능 ..
1. 개요클린 아키텍처를 대해 공부하면서 알게 된 주요한 분리 방식 두 가지가 있다. 첫 번째는 계층 우선 분리고, 두 번째는 기능 우선 분리이다. 먼저 계층 우선 분리는 기능보다는 계층에 따라 폴더를 나누는 방식으로 각 계층별 책임이 명확하다는 장점이 있다.하지만 기능이 추가됨에 따라 관련 파일들이 여기저기 흩어지기 때문에 파일들을 추적하거나 관리하기가 쉽지 않다. 반면 기능 우선 분리는 기능을 기준으로 폴더를 나누는 방식으로 특정 기능과 관련된 모든 코드가 한 곳에 있어 유지보수가 용이하고, 모듈화, 리팩토링, 테스트가 쉽다는 장점이 있지만, 폴더가 많아진다는 단점도 있다. 이전 러닝 앱을 구현하였을 때 크게 4가지 기능(로그인, 지도에 위치 표시, 채팅, 러닝 결과 계산)이 있었다.당시에 계층 우..
1. Unit TestUnit Test는 단위 테스트라고도 하며, 단일 함수, 메서드 또는 클래스 등 작은 코드 단위를 독립적으로 테스트하는 것입니다. 테스트 코드에 관해 궁금하다면 여기를 클릭하세요. 2. Mock?실제 앱에서는 API 통신, 네트워크 요청, 데이터베이스 접근 등 외부 리소스에 의존하는 코드가 많습니다.이런 외부 의존성은 테스트를 어렵게 만드는데요. 이때 사용하는 것이 바로 mock(모의 객체)입니다.mock은 실제 객체처럼 동작하지만 내부 구현은 없고, 테스트 목적으로 특정 동작만 흉내 내는 가짜 객체입니다.실제 객체는 외부 시스템과 연결되지만 mock 객체는 외부 연결 없이 동작만 흉내냅니다. 즉, 원래는 서버에 네트워크 요청을 보내고, 데이터를 받아오는 상황이지만,mock 객체는..