[flutter] 플러터에서의 http_mock_adapter를 이용한 앱 테마 테스트

목차

소개

앱 개발 시, 서버와의 통신을 테스트하거나 데이터를 모의(Mock)로 주고받을 때가 있습니다. 플러터(Flutter) 개발에서는 http 패키지를 통해 서버와의 통신을 핸들링할 수 있습니다. 그리고 http_mock_adapter 패키지를 사용하면 앱에서 서버 통신을 테스트 할 때 서버 응답을 모킹(Mocking)할 수 있게 됩니다.

이 글에서는 http_mock_adapter 패키지를 활용하여 플러터 앱의 테마를 테스트하는 방법에 대해 알아보겠습니다.

http_mock_adapter란?

http_mock_adapter는 플러터 앱 개발 시 HTTP 요청과 응답을 쉽게 모킹하는 데 사용되는 패키지입니다. 이 패키지를 사용하면 실제 서버와의 통신 없이 요청 및 응답을 모의(Mocking)할 수 있어 테스트를 보다 쉽게 수행할 수 있습니다.

앱 테마 테스트

앱 개발 시 테마는 매우 중요한 부분입니다. 사용자 경험을 향상시키고 앱의 브랜딩을 구현하는 데에도 테마는 필수적인 역할을 합니다. 앱 테마를 테스트하기 위해서는 실제 서버의 응답이 필요하지 않을 수 있습니다. 이럴 때 http_mock_adapter를 사용하면 테마 테스트를 쉽게 할 수 있습니다.

첫 번째로, http_mock_adapter 패키지를 프로젝트에 추가해야 합니다. pubspec.yaml 파일에 아래와 같이 의존성을 추가해주세요.

dependencies:
  http: ^0.13.0
  http_mock_adapter: ^1.1.1

그 후, 테마를 테스트하고자 하는 화면에서 다음과 같이 코드를 작성하세요.

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

void main() {
  // HttpMockAdapter를 생성합니다.
  final mockAdapter = HttpMockAdapter();

  // 네트워크 요청에 대한 모의 응답을 설정합니다.
  mockAdapter.onGet(
    '/api/theme',
    (request) => request.reply(200, {'theme': 'dark'}),
  );

  // MaterialApp을 생성하고 테스트하고자 하는 화면에 적용합니다.
  runApp(MaterialApp(
    home: Scaffold(
      appBar: AppBar(
        title: Text('테마 테스트'),
      ),
      body: FutureBuilder<http.Response>(
        future: http.get(Uri.parse('/api/theme')),
        builder: (context, snapshot) {
          if (snapshot.hasData) {
            final responseData = snapshot.data!.body;
            final theme = responseData['theme'];

            return Center(
              child: Text(
                '현재 테마는 $theme 입니다.',
                style: TextStyle(
                  fontSize: 24,
                  fontWeight: FontWeight.bold,
                ),
              ),
            );
          }

          return Center(
            child: CircularProgressIndicator(),
          );
        },
      ),
    ),
  ));
}

위의 코드를 살펴보면, http_mock_adapter를 사용하여 /api/theme 엔드포인트에 대한 모의 응답을 설정한 후, http 패키지를 통해 해당 엔드포인트로 요청을 보내고 응답을 받는 부분이 구현되어 있습니다. 이렇게 설정된 모의 응답이 앱에 반영되어야 테마 테스트가 수행될 수 있습니다.

결론

이제 http_mock_adapter를 사용하여 플러터 앱에서의 앱 테마 테스트를 쉽게 수행할 수 있는 방법에 대해 알아보았습니다. 테마 테스트를 통해 앱의 룩 앤 필(look and feel)을 확인하고 앱 사용자에게 최상의 사용자 경험을 제공하는데 도움이 될 것입니다. http_mock_adapter를 활용하여 테스트 코드 작성 시 더 효율적으로 개발할 수 있도록 노력해보세요!