[flutter] 플러터 라이브러리: http_mock_adapter 소개

Flutter Logo

이번에는 Flutter에서 사용할 수 있는 유용한 라이브러리 중 하나인 http_mock_adapter를 소개하려고 합니다. 이 라이브러리는 테스트 목적으로 HTTP 요청 및 응답을 가로채서 가짜 데이터를 사용할 수 있게 해줍니다.

http_mock_adapter란?

http_mock_adapter는 HTTP 클라이언트 라이브러리인 dio와 함께 사용할 수 있는 Mock Adapter입니다. 이 라이브러리를 사용하면 실제 서버 API 호출 대신 Mock 데이터를 반환하여 테스트를 진행할 수 있습니다. 이렇게 테스트를 할 때는 네트워크 요청이 필요하지 않기 때문에 빠르고 안정적인 테스트가 가능해집니다.

사용 방법

http_mock_adapter를 사용하려면 먼저 프로젝트의 pubspec.yaml 파일에 라이브러리를 추가해야 합니다.

dependencies:
  dio: ^4.0.0
  http_mock_adapter: ^0.4.0

라이브러리를 추가한 후, 다음과 같이 MockHttpClientAdapter를 사용하여 HTTP 클라이언트를 생성할 수 있습니다.

import 'package:dio/dio.dart';
import 'package:http_mock_adapter/http_mock_adapter.dart';

void main() {
  Dio dio = Dio();
  
  // MockHttpClientAdapter를 사용하여 HTTP 클라이언트 생성
  dio.httpClientAdapter = MockHttpClientAdapter();
  
  // Mock 데이터 설정
  dio.httpClientAdapter.onGet('/api/posts', (request) async {
    return Response(
      data: [
        {"id": 1, "title": "테스트 포스트 1"},
        {"id": 2, "title": "테스트 포스트 2"},
        {"id": 3, "title": "테스트 포스트 3"}
      ],
      statusCode: 200,
    );
  });
  
  // 테스트 요청
  Response response = await dio.get('/api/posts');
  
  // 테스트 결과 확인
  print(response.data); // Mock 데이터 출력
}

위의 예제 코드에서는 dio.httpClientAdapter.onGet() 메서드를 사용하여 /api/posts 엔드포인트에 대한 GET 요청에 대한 Mock 데이터를 설정하고 있습니다. 이렇게 설정된 Mock 데이터는 실제로 네트워크 요청 없이 반환되어 결과를 확인할 수 있습니다.

결론

http_mock_adapter는 Flutter 개발자들이 API 테스트를 더욱 쉽고 효율적으로 진행할 수 있게 해주는 유용한 라이브러리입니다. 이 라이브러리를 활용하여 네트워크 요청이 필요한 테스트를 보다 편리하게 수행할 수 있습니다.

더 자세한 내용은 공식 GitHub 저장소를 참조하시기 바랍니다.