[flutter] 플러터에서의 http_mock_adapter를 이용한 캐시 관련 기능 테스트

개요

플러터(Flutter)는 Google에서 개발한 모바일 애플리케이션 개발 프레임워크로, 다양한 플랫폼에서 동작하는 앱을 개발할 수 있습니다. 이번에는 플러터에서의 네트워크 요청을 테스트하기 위해 http_mock_adapter를 이용한 캐시 관련 기능 테스트에 대해 알아보겠습니다.

http_mock_adapter란?

http_mock_adapter는 플러터에서 네트워크 요청을 테스트하기 위한 패키지 중 하나입니다. 이 패키지를 사용하면 테스트 중에 실제 서버 요청 대신에 미리 정의한 목(Mock) 서버의 응답을 받아올 수 있습니다. 이를 활용하여 네트워크 요청과 응답에 대한 다양한 시나리오를 테스트할 수 있습니다.

캐시 관련 기능 테스트 방법

http_mock_adapter를 사용하여 캐시 관련 기능을 테스트하기 위해서는 다음의 단계를 따르면 됩니다:

  1. http 패키지와 http_mock_adapter 패키지를 pubspec.yaml에 추가합니다:
dependencies:
  flutter:
    sdk: flutter
  http: ^0.13.4
  http_mock_adapter: ^1.3.0
  1. 테스트 코드에서 HttpMockAdapter 객체를 생성하고 원하는 응답을 설정합니다:
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() {
  test('Cache test', () async {
    final mock = HttpMockAdapter();
    mock.onGet('/api/users').reply(200, {'name': 'John Doe'});

    // ...

    mock.close();
  });
}
  1. 캐시 테스트를 위해 실제 서버 대신 목 서버 응답을 받아오도록 설정합니다:
final response = await mock.client.get(Uri.parse('/api/users'));
  1. 원하는 캐시 동작을 확인합니다:
expect(response.body, '{"name": "John Doe"}');

위의 예제 코드에서는 /api/users에 대한 GET 요청이 올 때 목 서버에서는 200 응답과 {'name': 'John Doe'} 바디를 반환합니다. 이를 통해 캐시 동작을 테스트할 수 있습니다.

결론

http_mock_adapter를 사용하면 플러터 앱의 네트워킹 기능을 테스트하는 동안 캐시와 관련된 다양한 시나리오를 테스트할 수 있습니다. 이를 통해 앱의 안정성과 성능을 개선할 수 있습니다. 자세한 사용 방법에 대해서는 http_mock_adapter의 공식 문서를 참조하시기 바랍니다.

참고