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

플러터는 크로스 플랫폼 앱 개발을 위한 프레임워크로, 네트워크 요청과 응답을 테스트하는 것이 중요합니다. 이때 기존의 서버와 통신하는 대신 가짜 응답을 모방하는 방법을 사용할 수 있습니다. 이번 글에서는 플러터에서 http_mock_adapter를 이용하여 알림 설정을 테스트해보겠습니다.

1. http_mock_adapter 추가

먼저, pubspec.yaml 파일에 http_mock_adapter 패키지를 추가해야합니다. 다음과 같이 http와 함께 의존성을 추가합니다.

dependencies:
  flutter:
    sdk: flutter
  http: ^0.13.4
  http_mock_adapter: ^1.1.0

의존성을 추가한 후 터미널에서 flutter pub get 명령어를 실행하여 패키지를 다운로드 받습니다.

2. MockHttpClient 초기화

테스트를 위해 MockHttpClient를 초기화해야합니다. 이는 setUp 메서드에서 한 번만 수행하도록 구현합니다.

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() {
  late http.Client client;
  late MockHttpClient mockHttpClient;

  setUp(() {
    client = http.Client();
    mockHttpClient = MockHttpClient(client);
  });

  // 테스트 케이스 작성
}

3. 가짜 응답 설정

MockHttpClient를 사용하여 테스트에 필요한 가짜 응답을 설정할 수 있습니다. 예를 들어, 알림 설정 API에 요청을 보내고 가짜 응답을 반환하는 테스트를 작성해보겠습니다.

test('알림 설정 테스트', () async {
  final responseJson = {
    'status': 'success',
    'message': '알림 설정이 업데이트되었습니다.',
  };

  // 가짜 응답 설정
  mockHttpClient.onPost('/api/notification').reply(200, responseJson);

  final response = await client.post(Uri.parse('/api/notification'));

  // 응답 확인
  expect(response.statusCode, 200);
  expect(response.body, json.encode(responseJson));
});

위의 코드에서는 /api/notification 엔드포인트에 대한 POST 요청에 가짜 응답을 설정하고, 실제 요청을 보내서 응답을 확인합니다.

4. 테스트 실행

테스트를 실행해보겠습니다. 터미널에서 flutter test 명령어를 실행하면 테스트가 시작됩니다. MockHttpClient를 사용하면 실제 서버와의 통신 없이 가짜 응답을 테스트할 수 있습니다.

결론

플러터에서 http_mock_adapter를 사용하여 가짜 응답을 설정하여 네트워크 요청과 응답을 테스트할 수 있습니다. 이를 통해 알림 설정과 같은 기능을 손쉽게 테스트할 수 있습니다.