flutter-add-widget-test은(는) 무엇을 하나요?
WidgetTester를 사용하여 UI 렌더링 및 사용자 상호작용(탭, 스크롤, 텍스트 입력)을 검증하는 컴포넌트 수준의 테스트를 구현합니다. 특정 위젯이 올바른 데이터를 표시하고 예상대로 이벤트에 응답하는지 확인할 때 사용하세요.
사용 방법
flutter_test패키지에서WidgetTester를 임포트합니다.testWidgets함수를 사용하여 테스트를 정의합니다.pumpWidget을 호출하여 테스트할 위젯을 렌더링합니다.Finder를 사용하여 특정 위젯을 찾습니다.tester.tap,tester.scroll,tester.enterText등으로 상호작용을 시뮬레이션합니다.expect를 사용하여 상태나 UI가 예상대로 변경되었는지 확인합니다.
예제
import 'package:flutter_test/flutter_test.dart';
import 'package:my_app/my_widget.dart';
void main() {
testWidgets('MyWidget displays correct text', (WidgetTester tester) async {
// 위젯 렌더링
await tester.pumpWidget(MyWidget());
// 텍스트 찾기
expect(find.text('Hello'), findsOneWidget);
// 버튼 탭 시뮬레이션
await tester.tap(find.byType(ElevatedButton));
await tester.pump();
// 탭 후 상태 확인
expect(find.text('Clicked!'), findsOneWidget);
});
}
주요 함수
| 함수 | 설명 |
|---|---|
pumpWidget | 위젯을 렌더링합니다. |
pump | 프레임을 다시 빌드합니다. |
tap | 특정 위젯을 탭합니다. |
scroll | 스크롤을 시뮬레이션합니다. |
enterText | 텍스트 필드에 입력합니다. |
참고 사항
- 테스트 파일은 일반적으로
test/디렉토리에 위치하며, 파일명은_test.dart로 끝나야 합니다. flutter_test패키지는flutterSDK에 기본 포함되어 있습니다.- 복잡한 애니메이션 테스트가 필요한 경우
pumpAndSettle을 사용하여 모든 애니메이션이 완료될 때까지 기다릴 수 있습니다.