[flutter] 플러터에서의 http_mock_adapter를 이용한 서브스크립션 기능 테스트

플러터(Flutter)는 Google에서 개발한 UI 프레임워크로, iOS와 Android를 위한 모바일 애플리케이션을 빠르게 개발할 수 있도록 도와줍니다. 이번에는 플러터에서의 테스트에 대해 알아보겠습니다. 특히, http_mock_adapter를 사용하여 서브스크립션(subscription) 기능을 테스트해보겠습니다.

http_mock_adapter란?

http_mock_adapter는 플러터에서 네트워크 요청을 가로채고 가짜 응답을 반환하는 기능을 제공하는 패키지입니다. 이를 통해 서버와의 통신이 필요한 테스트를 쉽게 구현할 수 있습니다.

서브스크립션 기능 테스트하기

서브스크립션 기능은 앱에서 특정 항목에 대한 업데이트를 실시간으로 받기 위해 사용되는 중요한 기능입니다. 테스트를 위해 다음과 같이 테스트 코드를 작성해보겠습니다.

import 'dart:convert';

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() {
  TestWidgetsFlutterBinding.ensureInitialized();

  test('Subscription test', () async {
    final mockClient = MockAdapter();
  
    // 가짜 응답 설정
    final response =
        MockAdapterResponseBody.json(jsonEncode({'message': 'Subscription successful'}), 200);
    mockClient.onPost('/subscribe').reply(200, response);
  
    // 서브스크립션 요청
    final result = await http.post(
      Uri.parse('https://example.com/subscribe'),
      body: {'email': 'user@example.com'},
    );
  
    // 응답 확인
    expect(result.statusCode, 200);
    expect(jsonDecode(result.body)['message'], 'Subscription successful');
  });
}

위의 코드는 테스트 코드로, http_mock_adapter를 사용하여 서브스크립션 요청을 테스트합니다. TestBed를 초기화한 후 test 메서드 안에서 필요한 인스턴스를 생성한 다음, 가짜 응답을 설정하고 요청을 보내서 응답을 확인하는 과정을 수행합니다.

위의 예시에서는 ‘/subscribe’ URL에 POST 요청을 보내고, 응답으로 {‘message’: ‘Subscription successful’}이라는 JSON 데이터를 받는 것을 가정하고 테스트를 진행합니다.

마치며

이제 플러터에서 http_mock_adapter를 사용하여 서브스크립션 기능을 테스트하는 방법을 알아보았습니다. 이를 통해 네트워크 요청에 대한 테스트를 보다 간편하게 수행할 수 있습니다. 자세한 내용은 공식 문서를 참고하시기 바랍니다.