데브허브 | DEVHUB | Flutter Mocking어떻게 작성할까요? [Widget Test Part2]Flutter Mocking어떻게 작성할까요? [Widget Test Part2]
- 위젯 테스트는 화면의 UI 컴포넌트가 예상대로 렌더링되는지 검증하는 과정입니다. 🖼️
- 샘플 앱은 외부 워드프레스 API에서 HTTP 통신으로 데이터를 받아와 10개의 아티클을 리스트 뷰로 표시합니다. 🌐
- 실제 HTTP 통신은 느리고 데이터가 불안정하여 테스트의 신뢰성과 속도를 저해하므로, 위젯 테스트에서는 외부 의존성을 격리해야 합니다. 🚧
- '목(Mock)'은 실제 클래스의 동작을 흉내 내는 가짜 클래스를 만들어 테스트 환경에 고정된 예측 가능한 데이터를 제공하는 기법입니다. 🎭
- 모키토(Mockito) 패키지와 빌드 러너(build_runner)를 사용하여
@Mock 어노테이션으로 목 클래스를 자동으로 생성할 수 있습니다. 🛠️
- '스터빙(Stubbing)'은 목 객체의 특정 메소드나 프로퍼티가 호출될 때 반환할 값을 미리 정의하여 다양한 테스트 시나리오에 맞는 데이터를 제공하는 과정입니다. 🎯
- 위젯 테스트는 목킹, 스터빙,
tester.pumpWidget()으로 위젯 빌드, 그리고 find.byType()과 expect()로 검증하는 4단계로 진행됩니다. 🚀
- 예시로 리스트 뷰 위젯의 존재 여부를 검증하는 시나리오를 통해 목킹과 스터빙의 실제 적용 방법을 보여주었습니다. ✅
- 썸네일 이미지, 프로필 이미지 크기, 긴 텍스트 처리, 태그 개수 등 다양한 UI 렌더링 시나리오를 목킹을 활용하여 검증할 수 있습니다. 💡