소개
앱을 개발하다보면 소셜 미디어 플랫폼과의 연동이 필요한 경우가 많습니다. 이때 테스트를 진행하기 위해서는 해당 플랫폼과의 통신을 모방할 수 있는 도구가 필요합니다. Flutter에서는 http_mock_adapter
를 사용하여 테스트용 API 호출을 모방하고 응답을 조작할 수 있습니다. 이번 포스트에서는 플러터에서의 http_mock_adapter
를 이용한 소셜 미디어 연동 테스트를 다룰 것입니다.
http_mock_adapter란?
http_mock_adapter
는 Flutter 앱에서 네트워크 호출을 시뮬레이션하고 응답을 조작하는 데 사용되는 패키지입니다. MockClient
를 사용하여 실제 서버와 통신하는 대신 미리 정의된 응답을 사용할 수 있습니다. 이를 통해 실제 API 호출이 필요한 상황에서도 테스트를 실시할 수 있습니다.
예제 코드
플러터에서 소셜 미디어 연동을 테스트하는 예제를 살펴보겠습니다. 우리는 페이스북 API를 사용하여 로그인을 시도하고, 페이스북에서 전달받은 토큰을 사용하여 사용자 정보를 가져오는 것을 가정합니다.
import 'package:flutter_test/flutter_test.dart';
import 'package:http_mock_adapter/http_mock_adapter.dart';
void main() {
test('페이스북 연동 테스트', () async {
final mockClient = MockHttpClient();
final adapter = DioAdapter(client: mockClient);
// 로그인 API 모의 응답 설정
final loginResponseData = {'token': 'mock_token'};
adapter.onPost('/login', (server) => server.reply(200, loginResponseData));
// 사용자 정보 API 모의 응답 설정
final userInfoResponseData = {'name': 'John Doe', 'email': 'johndoe@example.com'};
adapter.onGet('/user', (server) => server.reply(200, userInfoResponseData));
// 로그인 시도
final loginResponse = await adapter.client.post('/login');
expect(loginResponse.statusCode, 200);
// 토큰을 사용하여 사용자 정보 요청
final userInfoResponse = await adapter.client.get('/user');
expect(userInfoResponse.statusCode, 200);
expect(userInfoResponse.data, userInfoResponseData);
});
}
이 예제에서는 MockHttpClient
클래스를 사용하여 가상의 HTTP 클라이언트를 생성합니다. DioAdapter
인스턴스를 생성하여 해당 클라이언트를 주입합니다. 그런 다음 onPost
및 onGet
메소드를 사용하여 각각 로그인 API와 사용자 정보 API에 대한 가상 응답을 설정합니다. 마지막으로 client.post
및 client.get
을 사용하여 가상 통신을 수행하고 응답을 확인합니다.
결론
http_mock_adapter
를 사용하면 Flutter 앱에서 소셜 미디어 플랫폼과의 연동을 테스트할 수 있습니다. 이를 통해 통신을 시뮬레이션하고 원하는 응답을 정의할 수 있습니다. 이를 이용하여 앱의 안정성과 테스트 커버리지를 향상시킬 수 있습니다.