플러터는 다양한 기기 정보를 읽어야 하는 앱 개발에 매우 유용한 프레임워크입니다. 이때, http_mock_adapter를 사용하면 개발 중에 가짜 데이터로 디바이스 정보를 읽을 수 있습니다. 이 글에서는 플러터에서 http_mock_adapter를 이용하여 디바이스 정보를 테스트하는 방법에 대해 알아보겠습니다.
http_mock_adapter란?
http_mock_adapter
는 테스트 서버가 없는 상황에서도 네트워크 요청을 가로채서 가짜 응답을 주는 라이브러리입니다. 이를 이용하면 실제 서버와 통신하지 않고도 가짜 데이터를 사용하여 테스트를 진행할 수 있습니다. 이 라이브러리를 이용하면 디바이스 정보를 불러오는 API와 통신하지 않고 가짜 데이터를 사용할 수 있습니다. 이를 통해 개발 도중에도 실제 데이터를 사용하지 않고도 안정적인 테스트가 가능해집니다.
http_mock_adapter 설치하기
우선, http_mock_adapter
를 설치해야 합니다. pubspec.yaml
파일에 아래의 의존성을 추가해주세요.
dev_dependencies:
http_mock_adapter: ^1.0.0
그리고 터미널에서 아래의 명령어를 실행하여 의존성을 설치합니다.
$ flutter pub get
http_mock_adapter로 디바이스 정보 읽기 테스트하기
이제 http_mock_adapter
를 사용하여 플러터 앱에서 디바이스 정보를 읽는 테스트를 진행해보겠습니다.
import 'package:flutter_test/flutter_test.dart';
import 'package:http_mock_adapter/http_mock_adapter.dart';
import 'package:my_app/utils/api_client.dart';
void main() {
late DioAdapter dioAdapter;
final apiClient = ApiClient();
setUp(() {
dioAdapter = DioAdapter();
apiClient.client.httpClientAdapter = dioAdapter;
});
test('디바이스 정보를 API로부터 읽을 수 있는지 확인', () async {
final deviceData = {
'deviceName': 'Device X',
'deviceType': 'Mobile',
'platform': 'iOS',
};
dioAdapter.onGet('/device', (request) {
return request.reply(200, deviceData);
});
final result = await apiClient.getDeviceInfo();
expect(result.deviceName, 'Device X');
expect(result.deviceType, 'Mobile');
expect(result.platform, 'iOS');
});
}
위의 코드는 테스트 코드입니다. 먼저, dioAdapter
를 선언하고 ApiClient
를 초기화합니다. 그 다음, setUp
함수에서 httpClientAdapter
를 dioAdapter
로 설정합니다.
test
함수에서는 가짜 디바이스 데이터를 생성하고, dioAdapter.onGet
메서드를 사용하여 /device
엔드포인트에 대한 GET 요청을 가로채고 가짜 응답을 생성합니다. 마지막으로, apiClient.getDeviceInfo
를 호출하여 디바이스 정보를 가져와서 원하는 결과와 일치하는지 확인합니다.
결론
이렇게 플러터에서 http_mock_adapter를 이용하여 디바이스 정보를 읽는 테스트를 수행할 수 있습니다. 이를 통해 개발 도중에도 실제 API로부터 응답을 받지 않고도 안정적인 테스트를 할 수 있습니다. http_mock_adapter의 다양한 기능을 활용하여 효율적인 테스트 코드를 작성해보세요!