이번 포스트에서는 Flutter 애플리케이션에서 API 요청을 모의하는 방법에 대해 알아보겠습니다. 이를 위해 http_mock_adapter
패키지를 사용할 것입니다. http_mock_adapter
는 플러터 애플리케이션에서 HTTP 요청을 가로채고 가짜 응답을 반환하는 것을 도와줍니다. 이를 통해 개발자는 서버와의 의존성 없이 애플리케이션을 테스트할 수 있습니다.
1. http_mock_adapter
패키지 추가
먼저, http_mock_adapter
패키지를 프로젝트에 추가해야 합니다. pubspec.yaml
파일을 열고 dependencies
섹션에 다음과 같이 패키지를 추가합니다:
dependencies:
http: ^0.13.0
http_mock_adapter: ^1.0.0
프로젝트 루트에서 flutter pub get
명령어를 실행하여 패키지를 다운로드합니다.
2. http_mock_adapter
설정
다음으로, http
패키지에서 제공하는 HttpClient
대신 MockHttpClient
를 사용하기 위해 http_mock_adapter
를 설정해야 합니다. 앱의 main.dart
파일에서 다음과 같이 설정할 수 있습니다:
import 'package:http_mock_adapter/http_mock_adapter.dart';
import 'package:http/http.dart' as http;
void main() {
// 실제 응답 또는 가짜 응답을 전달할 MockHttpClient 인스턴스를 생성합니다.
final mockClient = MockHttpClient();
// 앱에서 사용하는 http 패키지의 원래 Factory 함수를 대체합니다.
http.Client = mockClient;
// 앱을 실행합니다.
runApp(MyApp());
}
위의 코드는 http
패키지의 Client
를 MockHttpClient
로 대체하는 부분입니다.
3. API 모의 응답 설정
이제 API 요청에 대한 모의 응답을 설정해보겠습니다. 예를 들어, GET
요청에 대해 다음과 같은 응답을 반환하도록 설정하고 싶다고 가정해봅시다:
final mockResponse = {
'id': 1,
'name': 'John Doe',
'email': 'johndoe@example.com',
};
mockClient
.onGet('/users/1')
.reply(200, mockResponse);
위의 코드에서는 /users/1
경로에 대한 GET
요청에 대한 가짜 응답을 설정하고 있습니다. 응답으로는 200
상태 코드와 mockResponse
변수에 지정된 데이터를 반환합니다.
4. 테스트 실행
이제 플러터 애플리케이션을 실행하여 모의 응답을 확인할 수 있습니다. 이전에 설정한 가짜 응답을 받기 위해 http.get()
메서드를 호출해보세요. 예를 들어:
final url = Uri.parse('https://api.example.com/users/1');
final response = await http.get(url);
print(response.statusCode); // 200
print(response.body); // {"id": 1, "name": "John Doe", "email": "johndoe@example.com"}
위의 코드는 설정한 모의 응답을 받아와 상태 코드와 응답 본문을 출력합니다.
결론
이제 애플리케이션에서 API 요청을 모의하는 방법을 알게 되었습니다. http_mock_adapter
를 사용하면 서버와의 의존성 없이 애플리케이션을 테스트할 수 있습니다. 따라서 테스트 주도 개발(TDD) 방법론을 따르는 개발자들에게 특히 유용하다고 할 수 있습니다.
더 많은 정보와 예제 코드는 http_mock_adapter GitHub 페이지를 참조하세요.