플러터에서 API 호출을 테스트할 때, 실제 서버에 요청을 보내기 보다는 가짜 응답을 반환하는 것이 효율적입니다. 이를 위해 http_mock_adapter
라이브러리를 사용하여 서버 응답을 가로챌 수 있습니다. 이번 블로그에서는 http_mock_adapter
를 사용하여 플러터 앱에서 서버 응답 속도를 제어하는 방법을 알아보겠습니다.
1. http_mock_adapter 라이브러리 추가하기
먼저, http_mock_adapter
라이브러리를 프로젝트에 추가해야 합니다. pubspec.yaml
파일에 아래와 같이 의존성을 추가합니다.
dev_dependencies:
http_mock_adapter: ^2.0.0
의존성을 추가한 후, 터미널에서 flutter pub get
명령을 실행하여 라이브러리를 다운로드합니다.
2. 가짜 응답 생성하기
http_mock_adapter
를 사용하여 가짜 응답을 생성합니다. 아래는 예시입니다.
import 'package:http_mock_adapter/http_mock_adapter.dart';
import 'package:http/http.dart' as http;
// MockClient 생성
final MockClient mockClient = MockClient();
// 가짜 응답 생성
final mockResponse = {
'name': 'John Doe',
'email': 'johndoe@example.com',
};
// 가짜 응답을 반환할 API 주소 설정
const apiURL = 'https://example.com/api';
// MockClient에 응답을 등록
mockClient.onGet(apiURL).reply(200, mockResponse);
// 실제로 API 호출해보기
final response = await http.get(Uri.parse(apiURL));
// 응답 확인
print(response.body); // 가짜 응답인 {'name': 'John Doe', 'email': 'johndoe@example.com'} 출력
위의 예제에서는 MockClient
를 사용하여 가짜 응답을 생성하고, mockClient.onGet()
메서드를 사용하여 API 주소에 해당하는 가짜 응답을 등록합니다. 그 후 실제로 API를 호출하면 가짜 응답이 반환됩니다.
3. 응답 속도 제어하기
http_mock_adapter
를 사용하여 가짜 응답의 속도를 제어할 수 있습니다. 아래는 응답을 2초 후에 반환하는 예시입니다.
// 응답을 2초 후에 반환
mockClient.onGet(apiURL).timeout(const Duration(seconds: 2)).reply(200, mockResponse);
위의 예제에서는 timeout()
메서드를 사용하여 응답을 2초 후에 반환하도록 설정하였습니다.
4. 플러터 앱에서 사용하기
이제 가짜 응답을 사용하여 플러터 앱에서 API 호출을 테스트할 수 있습니다. http
패키지 대신 MockClient
를 사용하여 API를 호출하면 가짜 응답이 반환됩니다.
final response = await mockClient.get(Uri.parse(apiURL));
위의 예제에서는 mockClient.get()
메서드를 사용하여 가짜 응답을 반환받습니다.
마무리
위의 단계를 따라가면서 플러터 앱에서 서버 응답 속도를 제어하는 방법을 알아보았습니다. http_mock_adapter
를 사용하면 실제 서버에 의존하지 않고 가짜 응답을 생성하여 앱을 테스트할 수 있습니다. 이를 통해 테스트하는 동안 발생할 수 있는 오류나 지연을 미리 확인하고 대응할 수 있습니다.
더 많은 정보는 http_mock_adapter GitHub 페이지를 참조하시기 바랍니다.