Flutter는 여러 유형의 테스트를 지원합니다 — 단위 테스트(로직), 위젯 테스트(UI 컴포넌트), 통합 테스트(전체 앱 플로우). 좋은 테스트 전략은 신뢰성과 확신을 향상시키며, Flutter의 테스트 도구는 이를 실용적으로 만듭니다.
단위 테스트 — 로직 테스트
// 순수 로직 테스트 (함수, 클래스, 비즈니스 로직) — 빠르고 UI 없음
test('adds two numbers', () {
expect(add(2, 3), 5);
});
test('Cart calculates total', () {
final cart = Cart()..add(Item(price: 10));
expect(cart.total, 10);
});
위젯 테스트 — UI 컴포넌트 테스트
// 위젯 테스트는 위젯의 UI와 동작을 검증 (테스트 환경에서, 빠름)
testWidgets('Counter increments', (WidgetTester tester) async {
await tester.pumpWidget(MyApp()); // 위젯 렌더링
expect(find.text('0'), findsOneWidget); // 초기 state 검증
await tester.tap(find.byIcon(Icons.add)); // 상호작용 (탭)
await tester.pump(); // 변경 후 다시 빌드
expect(find.text('1'), findsOneWidget); // 갱신 검증
});
