[flutter] 플러터에서 http_mock_adapter를 이용한 예외 처리 테스트

플러터에서 HTTP 요청 및 응답을 테스트하고 예외 처리를 확인해야 할 때가 있습니다. 이를 위해 http_mock_adapter 라이브러리를 사용하여 가짜 응답을 생성하고 예외 상황을 시뮬레이션할 수 있습니다. 본 포스트에서는 이를 통해 플러터 앱에서의 예외 처리 테스트를 소개하겠습니다.

http_mock_adapter란?

http_mock_adapter는 플러터의 http 패키지와 함께 사용할 수 있는 가짜 HTTP 요청 및 응답을 생성하는 도구입니다. 이를 통해 네트워크 호출을 시뮬레이션하고 테스트하는 데 도움을 줍니다. 특히 예외 상황을 테스트하고 특정 응답을 수신하는 경우 유용합니다.

설치

먼저, pubspec.yaml 파일에 http_mock_adapter를 추가해야 합니다. 아래와 같이 dependencies 섹션에 추가합니다.

dev_dependencies:
  http_mock_adapter: ^1.2.0

그런 다음, 아래 명령을 사용하여 패키지를 가져옵니다.

flutter pub get

예외 처리 테스트

이제 http_mock_adapter를 사용하여 예외 처리 테스트를 수행해 보겠습니다.

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();

    // 가짜 요청 및 응답 설정
    final errorResponse = http.Response('', 400);
    mockAdapter.onGet('/api/data').reply(400, errorResponse);

    // Http 요청 시 사용할 클라이언트 설정
    client.httpClientAdapter = mockAdapter;

    // 테스트 시작
    final response = await client.get(Uri.parse('/api/data'));

    // 예외 처리 확인
    expect(response.statusCode, 400);

    // 클라이언트 및 mockAdapter 정리
    client.close();
    mockAdapter.reset();
  });
}

위의 코드는 http_mock_adapter를 사용하여 /api/data 에 대한 GET 요청에 대해 400 상태 코드를 반환하는 가짜 응답을 설정하는 코드입니다. 이후 예외 처리를 확인하기 위해 테스트에서 해당 요청을 실제로 호출하고 반환된 응답 상태 코드를 검증합니다.

마무리

이상으로, 플러터에서 http_mock_adapter를 사용하여 예외 처리 테스트를 소개하였습니다. 이를 통해 네트워크 호출 상황을 시뮬레이션하고 예외 처리를 테스트할 수 있습니다. 테스트 코드를 작성하여 앱의 안정성을 향상시키고 예외 상황에 대비하는 데 도움이 되길 바랍니다.

참고 자료