[flutter] 플러터에서의 http_mock_adapter를 이용한 사진 필터링 테스트
플러터는 사용자 인터페이스를 만들기 위한 크로스 플랫폼 프레임워크로, 다양한 기능을 제공합니다. 이 중 http
패키지를 사용하여 API와 통신할 때, http_mock_adapter
를 이용하여 테스트를 할 수 있습니다.
http_mock_adapter란?
http_mock_adapter
는 http
패키지와 함께 사용되는 모의 객체(Mock) 라이브러리로, 실제 API 호출을 대신하여 사전에 정의한 응답을 반환합니다. 이를 통해 테스트 환경에서 실제 API를 호출하지 않고도 기능을 검증할 수 있습니다.
사진 필터링 API 테스트
다음은 플러터에서 http_mock_adapter
를 이용하여 사진 필터링 API를 테스트하는 방법입니다.
- 먼저,
http
및http_mock_adapter
패키지를 프로젝트에 추가합니다.pubspec.yaml
파일에 다음 의존성을 추가합니다:
dependencies:
flutter:
sdk: flutter
http: ^0.13.4
dev_dependencies:
http_mock_adapter: ^2.0.0
http
패키지를 사용하여 사진 필터링 API를 호출하는 함수를 작성합니다:
import 'package:http/http.dart' as http;
Future<String> applyFilter(String imageUrl) async {
final response = await http.get(Uri.parse('https://api.example.com/filter?image=$imageUrl'));
if (response.statusCode == 200) {
return response.body;
} else {
throw Exception('Failed to apply filter');
}
}
http_mock_adapter
를 사용하여 API 호출을 모의(Mock)하고 응답을 설정합니다:
import 'package:http_mock_adapter/http_mock_adapter.dart';
void main() {
final mockAdapter = HttpMockAdapter();
final imageUrl = 'https://example.com/image.jpg';
// 모의 응답 설정
mockAdapter.onGet(
'https://api.example.com/filter?image=$imageUrl',
reply: 200,
body: 'Filtered image data',
);
// 모의 호출
final filterResult = await applyFilter(imageUrl);
// 기대 결과 검증
expect(filterResult, 'Filtered image data');
}
위 코드에서 mockAdapter.onGet()
메서드를 사용하여 모의 응답 설정을 하고, applyFilter()
함수를 호출하여 사진 필터링 API를 테스트합니다. 이때 기대하는 결과와 실제 결과가 일치하는지를 검증합니다.
결론
플러터에서 http_mock_adapter
를 사용하면 API 호출을 모의(Mock)하여 기능을 테스트할 수 있습니다. 이를 통해 API 응답의 다양한 시나리오를 테스트하고, 안정적이고 신뢰할 수 있는 앱을 개발할 수 있습니다.