[flutter] 플러터에서 http_mock_adapter를 이용한 알림 설정 테스트

이번 글에서는 Flutter 앱에서 HTTP 요청을 모의(Mock)하는 라이브러리인 http_mock_adapter를 사용하여 알림 설정 기능을 테스트해보도록 하겠습니다.

1. http_mock_adapter 소개

http_mock_adapter는 Flutter 앱에서 HTTP 통신을 모의하는 데 사용되는 패키지입니다. 이를 통해 실제 서버에 API 요청을 보내지 않고도 가상의 응답을 설정하여 테스트를 수행할 수 있습니다.

2. 알림 설정 API 테스트

알림 설정 기능을 테스트하기 위해 아래와 같은 API 요청을 가정해봅시다.

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

Future<void> updateNotificationSettings(bool enableNotifications) async {
  final url = 'https://example.com/api/settings';
  final body = {'enableNotifications': enableNotifications};

  final response = await http.put(Uri.parse(url), body: body);

  if (response.statusCode == 200) {
    print('알림 설정이 업데이트되었습니다.');
  } else {
    print('알림 설정 업데이트에 실패했습니다.');
  }
}

위의 코드에서 http.put 메서드를 사용하여 알림 설정을 업데이트합니다. 이를 모의하기 위해 http_mock_adapter를 사용하여 가상의 응답을 설정해보겠습니다.

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

void main() {
  final mockAdapter = MockAdapter();

  test('알림 설정 업데이트 테스트', () async {
    final url = 'https://example.com/api/settings';
    final body = {'enableNotifications': true};

    mockAdapter.onPut(url).reply(200, 'Settings updated');

    await updateNotificationSettings(true);

    expect(mockAdapter.dispatchedRequests.length, 1);
    expect(mockAdapter.dispatchedRequests.first.method, 'PUT');
    expect(mockAdapter.dispatchedRequests.first.url.toString(), url);
    expect(mockAdapter.dispatchedRequests.first.bodyFields, body);
  });
}

위의 코드에서 mockAdapter.onPut 메서드를 사용하여 PUT 요청에 대한 응답을 설정합니다. 이때 reply 메서드를 사용하여 응답의 상태 코드와 응답 body를 설정할 수 있습니다.

테스트를 실행하여 updateNotificationSettings 메서드가 가상의 응답을 받는지 확인할 수 있습니다. 이를 통해 알림 설정의 올바른 동작 여부를 테스트할 수 있습니다.

결론

http_mock_adapter를 사용하면 Flutter 앱의 HTTP 요청을 모의하여 테스트할 수 있습니다. 알림 설정과 같은 기능을 테스트하는 데 유용한 도구입니다. 이를 통해 앱의 안정성을 개선하고 버그를 찾는 데 도움이 됩니다.

더 자세한 내용은 http_mock_adapter 패키지 문서를 참조하세요.