[flutter] 플러터 http_mock_adapter를 이용한 단위 테스트 작성하기

플러터 앱의 단위 테스트는 앱의 기능을 테스트하고 버그를 식별하는 데 매우 중요합니다. 이번 블로그 포스트에서는 http_mock_adapter를 사용하여 웹 요청에 대한 가짜 응답을 처리하는 단위 테스트를 작성하는 방법을 배워보겠습니다.

목차

http_mock_adapter란?

http_mock_adapter는 플러터에서 제공하는 라이브러리로, 테스트 중에 실제 HTTP 요청을 가로채고 가짜 응답을 반환할 수 있습니다. 이를 통해 앱이 외부 API와 통신하는 동작을 단위 테스트에서 재현할 수 있습니다.

테스트 환경 설정

테스트 환경을 설정하기 위해 먼저 http_mock_adapter 패키지를 프로젝트에 추가해야 합니다. pubspec.yaml 파일에 아래와 같이 의존성을 추가하세요:

dev_dependencies:
  http_mock_adapter: ^1.1.0

의존성을 추가한 후 터미널에서 flutter packages get 명령을 실행하여 패키지를 가져오세요.

단위 테스트 작성

이제 단위 테스트를 작성할 준비가 되었습니다. 먼저 http 패키지를 사용하여 API를 호출하는 코드를 작성하세요. 그런 다음 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() {
  // 가짜 응답을 반환할 MockAdapter 객체 생성
  final mockAdapter = MockAdapter();

  // 단위 테스트 작성
  test('API 요청 테스트', () async {
    // MockAdapter를 HttpClient에 적용
    final httpClient = http.Client();
    httpClient.clientAdapter = mockAdapter;

    // API 요청
    final response = await httpClient.get(Uri.parse('https://api.example.com'));

    // 가짜 응답 확인
    expect(response.statusCode, 200);
    expect(response.body, 'Mock response');

    // 가짜 응답 설정
    mockAdapter
        .onGet('https://api.example.com')
        .reply(200, {'message': 'Mock response'});
  });
}

위의 코드에서 MockAdapter 객체를 생성하고 HttpClient에 적용하여 웹 요청에 대한 가짜 응답을 처리합니다. onGet 메서드를 사용하여 MockAdapter에게 원하는 요청을 등록하고, reply 메서드로 응답을 설정합니다.

위의 단위 테스트를 실행하면 실제 API 요청이 가로채지고 가짜 응답을 반환하여 테스트가 실행됩니다. 이를 통해 API 요청에 대한 응답 처리를 테스트할 수 있습니다.

마무리

이제 플러터의 http_mock_adapter를 사용하여 단위 테스트를 작성하는 방법을 알게 되었습니다. 이제 앱의 다양한 기능을 테스트하고 버그를 식별하는 데 활용할 수 있습니다. 추가적인 정보는 공식 문서를 참조해주세요.