고급

Testing

unit, widget, integration test를 목적에 따라 작성합니다.

핵심 개념

Testing 주요 항목

테스트 종류

Unit test는 순수 Dart 로직을 빠르게 검증합니다.

언제 쓰나: Widget test는 특정 위젯이 주어진 상태에서 어떻게 보이는지 확인합니다.

Flutter에서: Integration test는 실제 앱 흐름을 기기나 브라우저에서 검증합니다.

testWidgets('테스트 종류', (tester) async {
  await tester.pumpWidget(const MaterialApp(home: HomePage()));
  expect(find.text('Flutter Wiki'), findsOneWidget);
});

테스트 전략

복잡한 비즈니스 규칙은 unit test로 먼저 보호합니다.

언제 쓰나: 중요한 화면 상태는 widget test로 검증합니다.

Flutter에서: 로그인, 결제, 등록 같은 핵심 사용자 여정은 integration test 후보입니다.

testWidgets('테스트 전략', (tester) async {
  await tester.pumpWidget(const MaterialApp(home: HomePage()));
  expect(find.text('Flutter Wiki'), findsOneWidget);
});

확장 개념

테스트 종류

  • Unit test는 함수와 클래스의 순수 로직을 빠르게 검증합니다.
  • Widget test는 특정 위젯이 기대한 UI와 상호작용을 제공하는지 확인합니다.
  • Integration test는 실제 앱 흐름을 기기나 에뮬레이터에서 검증합니다.

코드

예제

testWidgets('제목이 보인다', (tester) async {
  await tester.pumpWidget(const MaterialApp(home: HomePage()));
  expect(find.text('Flutter Wiki'), findsOneWidget);
});

다음 단계

실습 체크리스트

unit test 작성widget test 작성integration test 대상 선정
  • 출처세부 기준과 최신 변경 사항을 확인할 수 있습니다.
  • Flutter API Reference클래스, 메서드, 생성자 세부 정의를 확인합니다.
  • Dart languageDart 문법 자체가 궁금할 때 함께 봅니다.