[flutter] 플러터에서의 http_mock_adapter를 이용한 로그인 테스트 구현

안녕하세요! 이번에는 플러터(Flutter)에서 http_mock_adapter를 사용하여 로그인 테스트를 구현하는 방법에 대해 알아보겠습니다.

1. http_mock_adapter란?

http_mock_adapter는 플러터 앱에서 HTTP 요청을 가로채고 가짜 응답을 제공하는 라이브러리입니다. 이를 통해 테스트 중에 실제 서버로의 요청을 보내지 않고 가짜 응답을 사용하여 테스트를 수행할 수 있습니다.

2. 프로젝트 설정

먼저, 플러터 프로젝트를 생성하고 httphttp_mock_adapter 패키지를 추가해야 합니다. pubspec.yaml 파일에 다음과 같이 의존성을 추가합니다:

dependencies:
  flutter:
    sdk: flutter
  http: ^0.13.3
  http_mock_adapter: ^1.2.0

의존성을 추가한 후, 터미널에서 flutter packages get 명령어를 실행하여 패키지를 다운로드합니다.

3. 로그인 테스트 구현

이제 http_mock_adapter를 사용하여 로그인 테스트를 구현해보겠습니다. 아래의 예제 코드를 참고하십시오:

import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'package:http_mock_adapter/http_mock_adapter.dart';

void main() {
  // HttpMockAdapter 인스턴스를 생성합니다.
  final mockAdapter = MockAdapter();

  // 가짜 응답을 설정합니다.
  mockAdapter.onPost('/login')
      .reply(200, {'message': '로그인 성공'});

  runApp(MyApp(mockAdapter: mockAdapter));
}

class MyApp extends StatelessWidget {
  final HttpMockAdapter mockAdapter;

  const MyApp({Key? key, required this.mockAdapter}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: '로그인 테스트',
      home: Scaffold(
        appBar: AppBar(title: const Text('로그인 테스트')),
        body: Center(
          child: ElevatedButton(
            child: Text('로그인'),
            onPressed: () async {
              // 가짜 HTTP 요청을 보냅니다.
              final response = await mockAdapter.client.post(Uri.parse('/login'));

              if (response.statusCode == 200) {
                print('로그인 성공');
              } else {
                print('로그인 실패');
              }
            },
          ),
        ),
      ),
    );
  }
}

위의 코드에서, MockAdapter를 사용하여 가짜 응답을 설정한 후, MyApp 위젯에서 mockAdapter를 전달하여 사용합니다. mockAdapter.client를 통해 가짜 HTTP 요청을 보낼 수 있으며, 응답 코드를 확인하여 로그인 성공 여부를 출력합니다.

4. 실행 및 테스트

이제 앱을 실행하고 ‘로그인’ 버튼을 눌러 테스트해보세요. 가짜 응답이 제공되기 때문에 실제 서버로의 요청이 발생하지 않고 응답을 확인할 수 있습니다.

5. 결론

이번에는 http_mock_adapter를 사용하여 플러터 앱에서 로그인 테스트를 구현하는 방법을 알아보았습니다. 이를 통해 테스트 중에 실제 서버를 사용하지 않고도 가짜 응답을 통해 테스트를 수행할 수 있습니다. 추가적으로, http_mock_adapter를 사용하여 다양한 HTTP 요청에 대한 테스트를 구현할 수도 있습니다.

더 자세한 내용은 http_mock_adapter GitHub 페이지를 참고하시기 바랍니다.