플러터에서 HTTP 요청 및 응답을 테스트하고 예외 처리를 확인해야 할 때가 있습니다. 이를 위해 http_mock_adapter
라이브러리를 사용하여 가짜 응답을 생성하고 예외 상황을 시뮬레이션할 수 있습니다. 본 포스트에서는 이를 통해 플러터 앱에서의 예외 처리 테스트를 소개하겠습니다.
http_mock_adapter란?
http_mock_adapter
는 플러터의 http
패키지와 함께 사용할 수 있는 가짜 HTTP 요청 및 응답을 생성하는 도구입니다. 이를 통해 네트워크 호출을 시뮬레이션하고 테스트하는 데 도움을 줍니다. 특히 예외 상황을 테스트하고 특정 응답을 수신하는 경우 유용합니다.
설치
먼저, pubspec.yaml
파일에 http_mock_adapter
를 추가해야 합니다. 아래와 같이 dependencies 섹션에 추가합니다.
dev_dependencies:
http_mock_adapter: ^1.2.0
그런 다음, 아래 명령을 사용하여 패키지를 가져옵니다.
flutter pub get
예외 처리 테스트
이제 http_mock_adapter
를 사용하여 예외 처리 테스트를 수행해 보겠습니다.
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('예외 처리 테스트', () async {
final mockAdapter = MockAdapter();
final client = http.Client();
// 가짜 요청 및 응답 설정
final errorResponse = http.Response('', 400);
mockAdapter.onGet('/api/data').reply(400, errorResponse);
// Http 요청 시 사용할 클라이언트 설정
client.httpClientAdapter = mockAdapter;
// 테스트 시작
final response = await client.get(Uri.parse('/api/data'));
// 예외 처리 확인
expect(response.statusCode, 400);
// 클라이언트 및 mockAdapter 정리
client.close();
mockAdapter.reset();
});
}
위의 코드는 http_mock_adapter
를 사용하여 /api/data
에 대한 GET 요청에 대해 400 상태 코드를 반환하는 가짜 응답을 설정하는 코드입니다. 이후 예외 처리를 확인하기 위해 테스트에서 해당 요청을 실제로 호출하고 반환된 응답 상태 코드를 검증합니다.
마무리
이상으로, 플러터에서 http_mock_adapter
를 사용하여 예외 처리 테스트를 소개하였습니다. 이를 통해 네트워크 호출 상황을 시뮬레이션하고 예외 처리를 테스트할 수 있습니다. 테스트 코드를 작성하여 앱의 안정성을 향상시키고 예외 상황에 대비하는 데 도움이 되길 바랍니다.
참고 자료
- http_mock_adapter - Pub.dev
- Mocking HTTP requests in Flutter tests with http_mock_adapter - Flutter Community - Medium