[flutter] 플러터에서 http_mock_adapter를 이용한 데이터 복원 테스트

플러터는 앱 개발을 위한 매우 강력한 프레임워크입니다. 앱에서 서버와의 통신이 필요한 경우가 많은데, 이때 서버가 아직 구현되지 않은 상황에서 데이터를 복원하기 위해서는 테스트용으로 가짜 응답을 만들어주는 것이 필요합니다. 이때 http_mock_adapter 패키지를 사용하면 테스트에 유용한 가짜 응답을 만들고 테스트할 수 있습니다.

http_mock_adapter란?

http_mock_adapter는 Dart 언어용으로 만들어진 패키지로, http 패키지를 사용하여 앱에서 서버와의 통신을 할 때 가짜 응답을 제공해주는 모의 객체(Mock Object) 기능을 제공합니다. 이를 통해 서버가 아직 개발되지 않은 상황에서도 앱을 테스트할 수 있습니다.

설치하기

먼저, http_mock_adapter 패키지를 프로젝트에 추가해야 합니다. pubspec.yaml 파일에 다음과 같이 패키지를 추가해주세요.

dependencies:
  flutter:
    sdk: flutter
  http: ^0.13.3
  http_mock_adapter: ^2.0.0

그 다음, 터미널에서 다음 명령을 실행하여 패키지를 설치합니다.

flutter pub get

가짜 응답 만들기

가짜 응답을 만들기 위해서는 MockAdapter를 사용해야 합니다. 아래는 예시 코드입니다.

import 'package:http_mock_adapter/http_mock_adapter.dart';
import 'package:http/http.dart' as http;

void main() {
  final mockAdapter = MockAdapter();
  final client = http.Client();

  mockAdapter.onGet('/api/users').reply(200, {
    'id': 1,
    'name': 'John Doe',
    'email': 'johndoe@example.com',
  });

  client.httpClientAdapter = mockAdapter;

  // 가짜 응답을 사용하여 테스트할 코드 작성
}

위 코드에서는 mockAdapter를 생성한 후, onGet() 메서드를 사용하여 /api/users 경로에 대한 GET 요청에 대한 가짜 응답을 설정하였습니다. 응답은 200 상태 코드와 함께 JSON 형태의 데이터를 포함하고 있습니다.

테스트 코드 작성하기

이제 가짜 응답을 사용하여 테스트 코드를 작성할 수 있습니다. 아래는 예시 코드입니다.

import 'package:flutter_test/flutter_test.dart';
import 'package:http/http.dart' as http;
import 'package:http_mock_adapter/http_mock_adapter.dart';

void main() {
  test('테스트', () async {
    final mockAdapter = MockAdapter();
    final client = http.Client();

    mockAdapter.onGet('/api/users').reply(200, {
      'id': 1,
      'name': 'John Doe',
      'email': 'johndoe@example.com',
    });

    client.httpClientAdapter = mockAdapter;

    // 가짜 응답을 사용하여 테스트할 코드 작성
  });
}

테스트 코드에서는 flutter_test 패키지의 test() 함수를 사용하여 테스트를 정의합니다. 테스트 코드에서도 가짜 응답을 사용하여 서버와의 통신을 시뮬레이션하고, 테스트할 코드를 작성할 수 있습니다.

마무리

플러터에서 http_mock_adapter를 사용하여 데이터를 복원하는 테스트를 작성하는 방법을 알아보았습니다. 이를 통해 서버가 아직 개발되지 않은 상황에서도 앱을 테스트할 수 있게 되었습니다. http_mock_adapter를 활용하여 앱 개발의 효율성을 높여보세요.

참고: http_mock_adapter 패키지