이번에는 Flutter에서 사용할 수 있는 유용한 라이브러리 중 하나인 http_mock_adapter를 소개하려고 합니다. 이 라이브러리는 테스트 목적으로 HTTP 요청 및 응답을 가로채서 가짜 데이터를 사용할 수 있게 해줍니다.
http_mock_adapter란?
http_mock_adapter는 HTTP 클라이언트 라이브러리인 dio와 함께 사용할 수 있는 Mock Adapter입니다. 이 라이브러리를 사용하면 실제 서버 API 호출 대신 Mock 데이터를 반환하여 테스트를 진행할 수 있습니다. 이렇게 테스트를 할 때는 네트워크 요청이 필요하지 않기 때문에 빠르고 안정적인 테스트가 가능해집니다.
사용 방법
http_mock_adapter를 사용하려면 먼저 프로젝트의 pubspec.yaml
파일에 라이브러리를 추가해야 합니다.
dependencies:
dio: ^4.0.0
http_mock_adapter: ^0.4.0
라이브러리를 추가한 후, 다음과 같이 MockHttpClientAdapter를 사용하여 HTTP 클라이언트를 생성할 수 있습니다.
import 'package:dio/dio.dart';
import 'package:http_mock_adapter/http_mock_adapter.dart';
void main() {
Dio dio = Dio();
// MockHttpClientAdapter를 사용하여 HTTP 클라이언트 생성
dio.httpClientAdapter = MockHttpClientAdapter();
// Mock 데이터 설정
dio.httpClientAdapter.onGet('/api/posts', (request) async {
return Response(
data: [
{"id": 1, "title": "테스트 포스트 1"},
{"id": 2, "title": "테스트 포스트 2"},
{"id": 3, "title": "테스트 포스트 3"}
],
statusCode: 200,
);
});
// 테스트 요청
Response response = await dio.get('/api/posts');
// 테스트 결과 확인
print(response.data); // Mock 데이터 출력
}
위의 예제 코드에서는 dio.httpClientAdapter.onGet()
메서드를 사용하여 /api/posts
엔드포인트에 대한 GET 요청에 대한 Mock 데이터를 설정하고 있습니다. 이렇게 설정된 Mock 데이터는 실제로 네트워크 요청 없이 반환되어 결과를 확인할 수 있습니다.
결론
http_mock_adapter는 Flutter 개발자들이 API 테스트를 더욱 쉽고 효율적으로 진행할 수 있게 해주는 유용한 라이브러리입니다. 이 라이브러리를 활용하여 네트워크 요청이 필요한 테스트를 보다 편리하게 수행할 수 있습니다.
더 자세한 내용은 공식 GitHub 저장소를 참조하시기 바랍니다.