플러터(Flutter)는 Google에서 개발한 UI 프레임워크로, iOS와 Android를 위한 모바일 애플리케이션을 빠르게 개발할 수 있도록 도와줍니다. 이번에는 플러터에서의 테스트에 대해 알아보겠습니다. 특히, http_mock_adapter를 사용하여 서브스크립션(subscription) 기능을 테스트해보겠습니다.
http_mock_adapter란?
http_mock_adapter는 플러터에서 네트워크 요청을 가로채고 가짜 응답을 반환하는 기능을 제공하는 패키지입니다. 이를 통해 서버와의 통신이 필요한 테스트를 쉽게 구현할 수 있습니다.
서브스크립션 기능 테스트하기
서브스크립션 기능은 앱에서 특정 항목에 대한 업데이트를 실시간으로 받기 위해 사용되는 중요한 기능입니다. 테스트를 위해 다음과 같이 테스트 코드를 작성해보겠습니다.
import 'dart:convert';
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() {
TestWidgetsFlutterBinding.ensureInitialized();
test('Subscription test', () async {
final mockClient = MockAdapter();
// 가짜 응답 설정
final response =
MockAdapterResponseBody.json(jsonEncode({'message': 'Subscription successful'}), 200);
mockClient.onPost('/subscribe').reply(200, response);
// 서브스크립션 요청
final result = await http.post(
Uri.parse('https://example.com/subscribe'),
body: {'email': 'user@example.com'},
);
// 응답 확인
expect(result.statusCode, 200);
expect(jsonDecode(result.body)['message'], 'Subscription successful');
});
}
위의 코드는 테스트 코드로, http_mock_adapter를 사용하여 서브스크립션 요청을 테스트합니다. TestBed를 초기화한 후 test 메서드 안에서 필요한 인스턴스를 생성한 다음, 가짜 응답을 설정하고 요청을 보내서 응답을 확인하는 과정을 수행합니다.
위의 예시에서는 ‘/subscribe’ URL에 POST 요청을 보내고, 응답으로 {‘message’: ‘Subscription successful’}이라는 JSON 데이터를 받는 것을 가정하고 테스트를 진행합니다.
마치며
이제 플러터에서 http_mock_adapter를 사용하여 서브스크립션 기능을 테스트하는 방법을 알아보았습니다. 이를 통해 네트워크 요청에 대한 테스트를 보다 간편하게 수행할 수 있습니다. 자세한 내용은 공식 문서를 참고하시기 바랍니다.