[flutter] 플러터에서의 http_mock_adapter를 이용한 비동기 작업 테스트
플러터는 효과적인 비동기 작업을 위해 http
패키지를 제공합니다. 그러나 실제 서버에 요청을 보내고 응답을 기다리는 과정은 테스트하기 어렵습니다. 이러한 문제를 해결하기 위해 http_mock_adapter
를 사용할 수 있습니다. http_mock_adapter
는 실제 서버 대신 가짜 응답을 반환하여 테스트를 수행할 수 있게 해줍니다.
1. 프로젝트 설정
먼저, http_mock_adapter
패키지를 프로젝트에 추가해야 합니다. pubspec.yaml
파일에 다음과 같이 의존성을 추가합니다:
dev_dependencies:
http_mock_adapter: ^0.1.0
의존성을 추가한 후, 패키지를 다운로드하려면 터미널에서 flutter pub get
명령을 실행합니다.
2. http_mock_adapter
사용 예제
다음은 가장 기본적인 예제입니다. 가짜 응답을 반환하는 MockAdapter
를 사용하여 비동기 작업을 테스트합니다.
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 mockClient = MockHttpClient();
final mockAdapter = MockAdapter(mockClient: mockClient);
// 가짜 응답 설정
final responseBody = 'Hello, World!';
mockAdapter.onGet('/api/hello').reply(200, responseBody);
final url = 'https://example.com/api/hello';
final response = await http.get(Uri.parse(url));
expect(response.statusCode, 200);
expect(response.body, responseBody);
});
}
위의 예제에서는 MockHttpClient
와 MockAdapter
를 사용하여 가짜 응답을 설정하고, 테스트를 수행합니다. onGet
메소드를 사용하여 GET 요청에 대한 가짜 응답을 설정할 수 있습니다. reply
메소드는 응답 상태 코드와 응답 본문을 인자로 받습니다.