[flutter] 플러터에서의 http_mock_adapter를 이용한 사진 필터링 테스트

플러터는 사용자 인터페이스를 만들기 위한 크로스 플랫폼 프레임워크로, 다양한 기능을 제공합니다. 이 중 http 패키지를 사용하여 API와 통신할 때, http_mock_adapter를 이용하여 테스트를 할 수 있습니다.

http_mock_adapter란?

http_mock_adapterhttp 패키지와 함께 사용되는 모의 객체(Mock) 라이브러리로, 실제 API 호출을 대신하여 사전에 정의한 응답을 반환합니다. 이를 통해 테스트 환경에서 실제 API를 호출하지 않고도 기능을 검증할 수 있습니다.

사진 필터링 API 테스트

다음은 플러터에서 http_mock_adapter를 이용하여 사진 필터링 API를 테스트하는 방법입니다.

  1. 먼저, httphttp_mock_adapter 패키지를 프로젝트에 추가합니다. pubspec.yaml 파일에 다음 의존성을 추가합니다:
dependencies:
  flutter:
    sdk: flutter
  http: ^0.13.4

dev_dependencies:
  http_mock_adapter: ^2.0.0
  1. http 패키지를 사용하여 사진 필터링 API를 호출하는 함수를 작성합니다:
import 'package:http/http.dart' as http;

Future<String> applyFilter(String imageUrl) async {
  final response = await http.get(Uri.parse('https://api.example.com/filter?image=$imageUrl'));
  if (response.statusCode == 200) {
    return response.body;
  } else {
    throw Exception('Failed to apply filter');
  }
}
  1. http_mock_adapter를 사용하여 API 호출을 모의(Mock)하고 응답을 설정합니다:
import 'package:http_mock_adapter/http_mock_adapter.dart';

void main() {
  final mockAdapter = HttpMockAdapter();
  final imageUrl = 'https://example.com/image.jpg';

  // 모의 응답 설정
  mockAdapter.onGet(
    'https://api.example.com/filter?image=$imageUrl',
    reply: 200,
    body: 'Filtered image data',
  );

  // 모의 호출
  final filterResult = await applyFilter(imageUrl);

  // 기대 결과 검증
  expect(filterResult, 'Filtered image data');
}

위 코드에서 mockAdapter.onGet() 메서드를 사용하여 모의 응답 설정을 하고, applyFilter() 함수를 호출하여 사진 필터링 API를 테스트합니다. 이때 기대하는 결과와 실제 결과가 일치하는지를 검증합니다.

결론

플러터에서 http_mock_adapter를 사용하면 API 호출을 모의(Mock)하여 기능을 테스트할 수 있습니다. 이를 통해 API 응답의 다양한 시나리오를 테스트하고, 안정적이고 신뢰할 수 있는 앱을 개발할 수 있습니다.