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

이번 글에서는 플러터(Flutter) 어플리케이션에서 http_mock_adapter를 사용하여 색상 관련 기능을 테스트 하는 방법에 대해 알아보겠습니다. http_mock_adapter는 네트워크 요청을 가짜 데이터로 대체하여 테스트할 수 있도록 도와주는 라이브러리입니다.

1. http_mock_adapter 라이브러리 추가

먼저, http_mock_adapter 라이브러리를 프로젝트에 추가해야 합니다. pubspec.yaml 파일을 열고 아래와 같이 의존성을 추가해주세요.

dev_dependencies:
  http_mock_adapter: ^1.0.1

의존성을 추가하면 터미널에서 flutter pub get 명령을 실행하여 패키지를 업데이트 해줍니다.

2. 테스트 색상 API 클래스 작성

다음으로, 테스트할 색상 API에 대한 클래스를 작성해야 합니다. 예를 들어, ColorApi 클래스를 작성하고 getColor 메서드를 추가합니다.

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

class ColorApi {
  static const baseUrl = 'https://api.example.com';

  Future<String> getColor() async {
    final response = await http.get(Uri.parse('$baseUrl/color'));
    return response.body;
  }
}

3. Mock HTTP 클라이언트 사용

이제 http_mock_adapter를 사용하여 가짜 HTTP 클라이언트를 작성하고 getColor 메서드에서 사용하도록 변경합니다.

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

class ColorApi {
  static const baseUrl = 'https://api.example.com';
  late MockAdapter _mockAdapter;

  ColorApi() {
    final httpClient = http.Client();
    _mockAdapter = MockAdapter(httpClient: httpClient);
    _mockAdapter.onGet('$baseUrl/color').reply(200, 'red');
  }

  Future<String> getColor() async {
    final response = await _mockAdapter.client.get(Uri.parse('$baseUrl/color'));
    return response.body;
  }
}

위의 코드에서는 http_mock_adapterMockAdapter를 사용하여 가짜 HTTP 클라이언트를 생성하고, onGet 메서드를 통해 요청 URL과 응답 데이터를 설정합니다. 이제 getColor 메서드에서는 가짜 HTTP 클라이언트를 사용하여 테스트를 수행할 수 있습니다.

4. 테스트 케이스 작성

마지막으로, 작성한 ColorApi 클래스의 테스트 케이스를 작성합니다. 아래의 예시를 참고하여 테스트 케이스를 작성해주세요.

import 'package:flutter_test/flutter_test.dart';
import 'package:your_app_name/api/color_api.dart';

void main() {
  test('테스트 색상 API 호출', () async {
    final colorApi = ColorApi();
    final color = await colorApi.getColor();

    expect(color, 'red');
  });
}

위의 테스트 케이스에서는 ColorApigetColor 메서드를 호출하고, 예상되는 응답인 'red'와 일치하는지 검증합니다.

결론

이제 http_mock_adapter를 이용하여 플러터 어플리케이션에서 색상 관련 기능을 테스트하는 방법을 알아보았습니다. 가짜 HTTP 클라이언트를 사용하여 네트워크 요청을 모의해서 테스트할 수 있으므로, 실제 서버 응답을 기다리지 않고도 효율적으로 테스트할 수 있습니다. http_mock_adapter를 활용하여 테스트 코드를 작성하면, 어플리케이션의 안정성과 신뢰성을 높일 수 있습니다.

관련 참고 자료: