[flutter] 플러터 http_mock_adapter를 이용한 네트워크 요청 가상화

네트워크 요청을 테스트하기 위해서는 가상의 응답을 사용하는 것이 중요합니다. http_mock_adapter 패키지는 Flutter 애플리케이션에서 네트워크 요청을 가상화하는 데 도움을 주는 툴입니다. 이 패키지를 사용하면 가짜 응답을 생성하여 서버의 응답 없이도 테스트할 수 있습니다.

http_mock_adapter 패키지 설치

http_mock_adapter 패키지를 사용하려면 pubspec.yaml 파일에 다음의 의존성을 추가해야 합니다:

dev_dependencies:
  http_mock_adapter: ^1.2.0

의존성을 추가 한 후, 패키지를 설치하십시오.

flutter pub get

네트워크 요청 가상화

http_mock_adapter를 사용하면 기존의 HttpClient 대신에 MockHttpClient를 사용하여 네트워크 요청을 가상화 할 수 있습니다.

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

void main() {
  // MockHttpClient 생성
  final client = MockHttpClient();

  // Mock 응답 생성
  final responseBody = '{"message": "Hello, World!"}';
  final mockResponse = Response(responseBody, 200, headers: {'content-type': 'application/json'});

  // 가상화할 요청 설정
  final url = Uri.parse('https://example.com/api');
  final request = Request('GET', url);

  // MockHttpClient에 요청 동작 설정
  client.mock.response(request).thenReturn(mockResponse);

  // 요청 보내기
  final response = await client.send(request);

  // 응답 확인
  final decodedResponse = await response.stream.bytesToString();
  print(decodedResponse); // 출력: {"message": "Hello, World!"}
}

위의 예제 코드에서는 MockHttpClient를 사용하여 가상화할 요청을 생성하고, mock.response(request)를 사용하여 해당 요청에 대한 가짜 응답을 설정합니다. 이후 client.send(request)를 호출하여 실제로 요청을 보낼 수 있습니다. 마지막으로 응답을 받아와 확인할 수 있습니다.

이렇게 테스트 환경에서 http_mock_adapter를 사용하면 실제 서버 응답 없이도 네트워크 요청을 가상화하고 테스트할 수 있습니다.


참고 문서: