플러터는 크로스 플랫폼 앱 개발을 위한 프레임워크로, 네트워크 요청과 응답을 테스트하는 것이 중요합니다. 이때 기존의 서버와 통신하는 대신 가짜 응답을 모방하는 방법을 사용할 수 있습니다. 이번 글에서는 플러터에서 http_mock_adapter를 이용하여 알림 설정을 테스트해보겠습니다.
1. http_mock_adapter 추가
먼저, pubspec.yaml
파일에 http_mock_adapter
패키지를 추가해야합니다. 다음과 같이 http
와 함께 의존성을 추가합니다.
dependencies:
flutter:
sdk: flutter
http: ^0.13.4
http_mock_adapter: ^1.1.0
의존성을 추가한 후 터미널에서 flutter pub get
명령어를 실행하여 패키지를 다운로드 받습니다.
2. MockHttpClient 초기화
테스트를 위해 MockHttpClient
를 초기화해야합니다. 이는 setUp
메서드에서 한 번만 수행하도록 구현합니다.
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() {
late http.Client client;
late MockHttpClient mockHttpClient;
setUp(() {
client = http.Client();
mockHttpClient = MockHttpClient(client);
});
// 테스트 케이스 작성
}
3. 가짜 응답 설정
MockHttpClient
를 사용하여 테스트에 필요한 가짜 응답을 설정할 수 있습니다. 예를 들어, 알림 설정 API에 요청을 보내고 가짜 응답을 반환하는 테스트를 작성해보겠습니다.
test('알림 설정 테스트', () async {
final responseJson = {
'status': 'success',
'message': '알림 설정이 업데이트되었습니다.',
};
// 가짜 응답 설정
mockHttpClient.onPost('/api/notification').reply(200, responseJson);
final response = await client.post(Uri.parse('/api/notification'));
// 응답 확인
expect(response.statusCode, 200);
expect(response.body, json.encode(responseJson));
});
위의 코드에서는 /api/notification
엔드포인트에 대한 POST 요청에 가짜 응답을 설정하고, 실제 요청을 보내서 응답을 확인합니다.
4. 테스트 실행
테스트를 실행해보겠습니다. 터미널에서 flutter test
명령어를 실행하면 테스트가 시작됩니다. MockHttpClient
를 사용하면 실제 서버와의 통신 없이 가짜 응답을 테스트할 수 있습니다.
결론
플러터에서 http_mock_adapter
를 사용하여 가짜 응답을 설정하여 네트워크 요청과 응답을 테스트할 수 있습니다. 이를 통해 알림 설정과 같은 기능을 손쉽게 테스트할 수 있습니다.