[flutter] 플러터에서의 http_mock_adapter를 활용한 OCR 기능 테스트

플러터는 크로스 플랫폼 모바일 애플리케이션 개발을 위한 프레임워크로, 여러 플랫폼에서 동일한 코드로 앱을 개발할 수 있습니다. 이러한 플러터에서는 네트워크 요청을 처리하는 http 패키지를 제공합니다.

이번에는 http_mock_adapter라는 패키지를 활용하여 OCR(광학 문자 인식) 기능을 테스트해보겠습니다. OCR은 이미지에서 텍스트를 추출하는 기능으로, 네트워크를 통해 OCR 서비스에 이미지를 전송하고 결과를 받아오는 과정을 테스트할 것입니다.

http_mock_adapter란?

http_mock_adapter는 플러터의 http 패키지에서 네트워크 요청을 가로채서 가짜 응답을 돌려주는 역할을 합니다. 이를 통해 실제 서버에 의존하지 않고 테스트할 수 있습니다.

프로젝트 설정

OCR 테스트를 위해 다음과 같이 프로젝트를 설정합니다.

  1. pubspec.yaml 파일에 http_mock_adapter 패키지를 추가합니다.
dependencies:
  flutter:
    sdk: flutter
  http: ^0.13.1
  http_mock_adapter: ^1.1.0
  1. 패키지를 다운로드받기 위해 터미널에서 다음 명령을 실행합니다.
flutter pub get

OCR 기능 테스트

OCR 기능을 테스트하기 위해 다음과 같이 코드를 작성합니다.

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

void main() {
  test('OCR 기능 테스트', () async {
    final mockAdapter = MockAdapter();
    final httpClient = http.Client();
    httpClient.clientAdapter = mockAdapter;

    const imageUrl = 'https://example.com/image.jpg';
    const expectedText = 'Hello, World!';

    mockAdapter.onGet(
      imageUrl,
      reply: 200,
      body: expectedText,
    );

    final response = await httpClient.get(Uri.parse(imageUrl));
    expect(response.body, equals(expectedText));
  });
}

위의 코드에서는 http_mock_adapter 패키지를 사용하여 가짜 응답을 등록하고, http.Client 객체를 통해 이미지 URL에 대한 GET 요청을 보냅니다. 응답을 받아온 후에는 예상한 텍스트와 일치하는지 검증합니다.

실행 결과

테스트를 실행하면 http_mock_adapter를 사용하여 가짜 응답을 돌려주므로 실제 서버에 의존하지 않고 테스트할 수 있습니다. 예상한 텍스트와 응답 바디가 일치하는지 검증하는 테스트가 성공하면 OCR 기능이 올바르게 동작함을 확인할 수 있습니다.

결론

플러터에서는 http_mock_adapter 패키지를 활용하여 네트워크 요청을 테스트할 수 있습니다. OCR 기능을 테스트하는 예시를 통해 http_mock_adapter의 활용법을 알아보았습니다. 이러한 테스트를 통해 애플리케이션의 안정성과 신뢰성을 높일 수 있습니다.


참고: