이번 블로그 포스트에서는 플러터(Flutter)에서 http_mock_adapter를 사용하여 빌드 시간을 단축하는 방법에 대해 알아보겠습니다.
1. http_mock_adapter 소개
http_mock_adapter는 플러터 애플리케이션에서 네트워크 호출을 가로채고 가짜 응답을 반환하는 라이브러리입니다. 이를 통해 애플리케이션 개발 단계에서 네트워크 호출에 대한 응답을 고정할 수 있으므로 테스트를 진행하기에 편리합니다.
2. http_mock_adapter 설치하기
플러터 프로젝트에서 http_mock_adapter를 사용하기 위해 다음과 같이 의존성을 추가해야 합니다.
dependencies:
flutter:
sdk: flutter
http: ^0.13.0
dev_dependencies:
http_mock_adapter: ^1.0.2
의존성을 추가한 후 터미널에서 flutter pub get
을 실행하여 의존성을 설치합니다.
3. http_mock_adapter를 통한 테스트 설정
테스트를 위해 HttpClient
의 인스턴스를 생성하고 http_mock_adapter의 HttpMockAdapter
로 래핑합니다. 그런 다음 HttpMockAdapter
를 통해 응답해야 하는 요청에 대한 가짜 응답을 지정할 수 있습니다.
import 'package:http/http.dart';
import 'package:http_mock_adapter/http_mock_adapter.dart';
void main() {
final client = HttpClient()..addInterceptor(MockAdapter());
final http = MockAdapter().createHttpClient();
// 가짜 응답 지정
http
.onGet('/api/data')
.reply(200, {"message": "Mock data"}, headers: {'content-type': 'application/json'});
// 테스트 코드 작성
}
위 코드에서는 ‘/api/data’로 GET 요청이 오면 200 상태 코드와 함께 가짜 응답을 반환합니다. 응답의 내용과 헤더를 지정할 수 있으며, 필요한 경우 다양한 HTTP 메서드에 대한 가짜 응답을 추가로 지정할 수 있습니다.
4. 테스트 코드 작성
가짜 응답을 설정한 후, 테스트 코드에서는 이를 활용하여 네트워크 호출을 모의하는 것이 가능해집니다.
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('Mocked network call test', () async {
final http = MockAdapter().createHttpClient();
http
.onGet('/api/data')
.reply(200, {"message": "Mock data"}, headers: {'content-type': 'application/json'});
final response = await http.get(Uri.parse('/api/data'));
expect(response.statusCode, 200);
expect(response.headers['content-type'], 'application/json');
expect(response.body, '{"message": "Mock data"}');
});
}
위의 테스트 코드에서는 ‘/api/data’로 GET 요청을 생성하고 가짜 응답을 받아와, 응답의 상태 코드, 헤더, 본문을 검증합니다. 이를 통해 테스트 중에 실제로 네트워크 호출을 하지 않고도 원하는 응답을 받을 수 있습니다.
5. 빌드 시간 단축 테스트
실제로 http_mock_adapter를 사용하여 테스트를 진행하면 빌드 시간을 단축할 수 있습니다. 모의된 응답을 받아올 때 네트워크 통신이 필요없이 가짜 응답을 사용하므로, 네트워크 호출에 따른 대기 시간을 없앨 수 있습니다.
또한, 특정 시나리오에 대한 테스트를 진행하기 위해 가짜 응답을 자유롭게 설정하고 변경할 수 있다는 장점도 있습니다.
6. 결론
이번에는 플러터에서 http_mock_adapter를 사용하여 빌드 시간을 단축하는 방법에 대해 알아보았습니다. http_mock_adapter를 사용하면 네트워크 호출을 가로채고 가짜 응답을 반환하여 테스트를 진행할 수 있습니다. 이를 통해 빌드 시간을 단축하고 원하는 시나리오에 대해 테스트를 자유롭게 진행할 수 있습니다.