[flutter] 플러터에서의 http_mock_adapter를 이용한 비동기 작업 테스트

플러터는 효과적인 비동기 작업을 위해 http 패키지를 제공합니다. 그러나 실제 서버에 요청을 보내고 응답을 기다리는 과정은 테스트하기 어렵습니다. 이러한 문제를 해결하기 위해 http_mock_adapter를 사용할 수 있습니다. http_mock_adapter는 실제 서버 대신 가짜 응답을 반환하여 테스트를 수행할 수 있게 해줍니다.

1. 프로젝트 설정

먼저, http_mock_adapter 패키지를 프로젝트에 추가해야 합니다. pubspec.yaml 파일에 다음과 같이 의존성을 추가합니다:

dev_dependencies:
  http_mock_adapter: ^0.1.0

의존성을 추가한 후, 패키지를 다운로드하려면 터미널에서 flutter pub get 명령을 실행합니다.

2. http_mock_adapter 사용 예제

다음은 가장 기본적인 예제입니다. 가짜 응답을 반환하는 MockAdapter를 사용하여 비동기 작업을 테스트합니다.

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

void main() {
  test('비동기 작업 테스트', () async {
    final mockClient = MockHttpClient();
    final mockAdapter = MockAdapter(mockClient: mockClient);

    // 가짜 응답 설정
    final responseBody = 'Hello, World!';
    mockAdapter.onGet('/api/hello').reply(200, responseBody);

    final url = 'https://example.com/api/hello';
    final response = await http.get(Uri.parse(url));

    expect(response.statusCode, 200);
    expect(response.body, responseBody);
  });
}

위의 예제에서는 MockHttpClientMockAdapter를 사용하여 가짜 응답을 설정하고, 테스트를 수행합니다. onGet 메소드를 사용하여 GET 요청에 대한 가짜 응답을 설정할 수 있습니다. reply 메소드는 응답 상태 코드와 응답 본문을 인자로 받습니다.

3. 참고 자료