[flutter] 플러터에서의 http_mock_adapter를 이용한 QR 코드 생성 테스트

이번 포스트에서는 Flutter 앱에서 http_mock_adapter를 사용하여 QR 코드 생성 테스트를 진행하는 방법에 대해 알아보겠습니다.

1. httphttp_mock_adapter 패키지 추가하기

먼저, http 패키지와 http_mock_adapter 패키지를 pubspec.yaml 파일에 추가해야 합니다. 아래와 같이 dependencies 섹션에 패키지를 추가하세요.

dependencies:
  flutter:
    sdk: flutter
  http: ^0.13.3
  http_mock_adapter: ^2.1.0

그리고 패키지를 설치하기 위해 터미널에서 아래의 명령어를 실행하세요.

flutter pub get

2. httphttp_mock_adapter 임포트하기

QR 코드 생성 테스트에 필요한 httphttp_mock_adapter 패키지를 임포트합니다.

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

3. http_mock_adapter로 API 테스트하기

아래의 예제 코드는 특정 API 엔드포인트에 POST 요청을 보내고, 응답으로 받은 데이터를 기반으로 QR 코드를 생성하는 기능을 시뮬레이션합니다.

void main() {
  final mockAdapter = MockAdapter();
  http.Client().adapter = mockAdapter;

  const endpoint = 'https://my-api.com/generate-qr-code';
  const responseData = {
    'text': 'https://example.com',
    'size': 200,
    'backgroundColor': '#FFFFFF',
    'foregroundColor': '#000000',
  };

  mockAdapter.onPost(endpoint).reply(200, responseData);

  testWidgets('QR Code Generation Test', (tester) async {
    final response = await http.post(Uri.parse(endpoint));

    if (response.statusCode == 200) {
      final qrCodeData = response.body;

      // QR 코드 생성 로직을 작성하세요.
    }
  });
}

위의 코드에서 우리는 MockAdapter를 사용하여 API 호출을 시뮬레이션합니다. const responseData는 가짜 응답 데이터를 나타내고, mockAdapter.onPost(endpoint).reply(200, responseData)에서 endpoint로의 POST 요청에 대한 응답을 설정합니다.

실제 앱에서는 응답 데이터를 기반으로 QR 코드를 생성할 수 있습니다. QR 코드 생성 로직은 프로젝트의 요구사항에 따라 구현하시면 됩니다.

4. 테스트 실행하기

위에서 작성한 테스트를 실행하려면 터미널에서 다음 명령어를 실행하세요.

flutter test

테스트 결과를 확인하고, API 요청과 응답 데이터를 올바르게 처리하는지 확인하세요.

마무리

이번 포스트에서는 Flutter 앱에서 http_mock_adapter를 사용하여 QR 코드 생성 테스트를 진행하는 방법에 대해 알아보았습니다. http_mock_adapter는 실제 API 호출 없이도 테스트를 진행할 수 있도록 도와줍니다. 테스트 주도 개발 (Test-Driven Development, TDD)을 적용하여 앱의 안정성을 높이는 데 도움이 될 것입니다.

더 많은 정보를 원하신다면, 아래의 링크를 참고하세요:

다음 포스트에서는 실제 API와의 통신을 다루는 방법에 대해 알아보겠습니다.