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

플러터에서는 http_mock_adapter를 사용하여 테스트 중에 네트워크 요청을 가로채고 가짜 응답을 반환할 수 있습니다. 이를 활용하여 플러터 앱에서 알림 설정을 테스트해보겠습니다.

1. http_mock_adapter 패키지 추가

먼저, http_mock_adapter 패키지를 프로젝트에 추가해야 합니다. pubspec.yaml 파일에 다음과 같이 추가해주세요.

dev_dependencies:
  http_mock_adapter: ^1.3.0

2. 테스트 케이스 작성

알림 설정을 테스트하기 위해 다음과 같은 테스트 케이스를 작성해보겠습니다.

import 'dart:convert';

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

void main() {
  group('Notification Settings', () {
    late MockHttpClientAdapter mockAdapter;

    setUp(() {
      mockAdapter = MockHttpClientAdapter();
    });

    test('Should set notification settings', () async {
      final expectedResponse = Response(json.encode({'success': true}), 200);

      // Given
      final baseUrl = 'https://example.com';
      final endpoint = '/api/notification';
      final requestBody = json.encode({'enable': true});

      final client = HttpClient()..adapter = mockAdapter;

      final request = Request('POST', Uri.parse('$baseUrl$endpoint'))
        ..body = requestBody;

      mockAdapter.onPost('$baseUrl$endpoint').reply(200, expectedResponse);

      // When
      final response = await client.send(request);
      final decodedResponse = json.decode(await response.stream.bytesToString());

      // Then
      expect(response.statusCode, 200);
      expect(decodedResponse['success'], true);
    });
  });
}

위의 코드는 http_mock_adapter를 사용하여 네트워크 요청을 테스트하는 예시입니다. 테스트 메소드는 test 함수를 사용하며, 체이닝된 expect 함수를 사용하여 검증합니다.

3. 테스트 결과 확인

테스트를 실행하기 위해 다음 명령어를 사용합니다.

flutter test

테스트가 성공하면 flutter_test 패키지에서 제공하는 로그가 출력되며, 테스트가 실패하면 해당 위치에서 오류 메시지가 표시됩니다.

플러터에서 http_mock_adapter를 사용하여 알림 설정 테스트를 진행하는 방법을 알아보았습니다. 이를 통해 네트워크 요청에 대한 응답을 가로채고 가짜 응답을 반환하여 효과적인 테스트를 진행할 수 있습니다.

참고 자료