[flutter] 플러터에서의 http_mock_adapter를 활용한 데이터 검증 테스트

본 게시글에서는 플러터(Flutter) 앱에서 API 호출 테스트를 위해 http_mock_adapter를 사용하는 방법을 알아보겠습니다.

http_mock_adapter란?

http_mock_adapter는 HTTP 클라이언트 라이브러리인 http 패키지를 이용하여 HTTP 요청을 가로채고 가짜 응답을 반환하는 기능을 제공하는 패키지입니다. 이를 통해 실제 API를 호출하지 않고도 테스트를 진행할 수 있습니다.

테스트 환경 세팅

먼저, 프로젝트의 pubspec.yaml 파일에 http_mock_adapter를 추가합니다.

dev_dependencies:
  http_mock_adapter: ^1.0.0

그런 다음, test 폴더에 테스트 파일을 생성합니다. 예를 들어, api_test.dart 파일을 생성하겠습니다.

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

void main() {
  group('API Tests', () {
    late DioAdapter dioAdapter;
    late HttpClient httpClient;
    
    setUp(() {
      dioAdapter = DioAdapter();
      httpClient = HttpClient()
        ..httpClientAdapter = dioAdapter;
    });

    test('Test API call', () async {
      final dio = Dio();
      dio.httpClientAdapter = dioAdapter;
      
      // 가짜 응답 설정
      dioAdapter.onGet('https://api.example.com/data', (request) {
        return request.reply(200, {'message': 'Hello, World!'});
      });
      
      // API 호출
      final response = await dio.get('https://api.example.com/data');
      
      // 응답 검증
      expect(response.statusCode, 200);
      expect(response.data['message'], 'Hello, World!');
    });
  });
}

위의 예시에서는 http_mock_adapter를 사용해 테스트 환경을 세팅하고, 가짜 응답을 설정하고, API를 호출하여 검증하는 간단한 테스트를 수행하였습니다.

실행 및 결과 확인

테스트를 수행하려면 test 폴더 안에서 아래의 명령어를 실행합니다.

flutter test

테스트가 수행되고 결과가 출력됩니다. 결과에서 성공적으로 API 호출이 이루어지고 응답이 올바르게 수신되었는지 확인할 수 있습니다.

마무리

이번에는 http_mock_adapter를 사용하여 플러터 앱에서 API 테스트를 진행하는 방법에 대해 알아보았습니다. 이를 통해 실제 API를 호출하지 않고도 테스트를 수행할 수 있으며, 코드의 안정성을 높일 수 있습니다.

더 자세한 내용은 http_mock_adapter 패키지의 공식 문서를 참고하시기 바랍니다.