[flutter] 플러터에서 http_mock_adapter를 이용한 유효성 검사 테스트

플러터는 크로스 플랫폼 모바일 애플리케이션 개발을 위한 프레임워크로 많은 개발자들에게 사랑받고 있습니다. 웹 API와의 통신은 거의 필수적인 요소이며, 유효성 검사는 애플리케이션의 신뢰성을 보장하기 위한 중요한 단계입니다. 이번 글에서는 http_mock_adapter를 이용하여 플러터에서 웹 API 유효성 검사 테스트를 어떻게 수행할 수 있는지 알아보겠습니다.

http_mock_adapter란?

http_mock_adapter는 플러터에서 HTTP 클라이언트의 동작을 모의(Mock)하는 라이브러리입니다. 이 라이브러리를 사용하면 실제 서버와 통신하지 않고도 테스트 데이터를 사용하여 유효성 검사를 수행할 수 있습니다. http_mock_adapter는 플러터의 http 패키지와 함께 사용됩니다.

http_mock_adapter 설치

http_mock_adapter를 사용하기 위해 pubspec.yaml 파일에 다음과 같이 의존성을 추가해야 합니다.

dev_dependencies:
  http_mock_adapter: ^1.0.0

의존성 추가 후 터미널에서 flutter packages get 명령을 실행하여 패키지를 설치합니다.

http_mock_adapter를 이용한 테스트 작성

다음은 http_mock_adapter를 이용하여 유효성 검사 테스트를 작성하는 예시 코드입니다. HTTP 클라이언트를 모의(Mock)하고, 응답을 설정하여 테스트 중에 특정 상황을 시뮬레이션할 수 있습니다.

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() {
  final _apiUrl = 'https://example.com/api';
  final _mockClient = MockAdapter();

  setUp(() {
    _mockClient.onGet('$_apiUrl/users/1').reply(200, {'id': 1, 'name': 'John Doe'});
  });

  test('유저 정보 가져오기 테스트', () async {
    http.Response response = await http.get('$_apiUrl/users/1');
    expect(response.statusCode, 200);
    expect(response.body, '{"id": 1, "name": "John Doe"}');
  });
}

위의 코드에서 setUp() 함수에서는 _mockClient를 설정하며, onGet() 메소드를 사용하여 GET 요청에 대한 응답을 설정합니다. expect() 메소드를 사용하여 예상되는 상태 코드와 응답 값이 일치하는지 확인합니다.

결론

이제 플러터에서 http_mock_adapter를 이용하여 웹 API 유효성 검사 테스트를 수행하는 방법을 알게 되었습니다. 이를 통해 애플리케이션의 신뢰성을 증가시키고 버그를 사전에 방지할 수 있습니다. http_mock_adapter를 사용하여 테스트 주도 개발 방식을 적용하여 보다 견고한 플러터 애플리케이션을 개발해보세요.

참고자료