flutter-testing
Installation
SKILL.md
Flutter Testing Guide
Overview
Flutter testing follows a three-layer pyramid: Unit (fast, pure Dart logic) → Widget (UI component rendering) → Integration/E2E (full device flows). Each layer has distinct tooling and tradeoffs. Load the relevant reference based on what you need to test.
Process
Phase 1: Choose the Right Layer
Identify the testing tier before writing any code. Wrong tier = wasted effort.
- 🧱 Testing Fundamentals — Decision tree for choosing unit/widget/integration, MVVM isolation patterns, and project structure.
Phase 2: Write Tests with Correct APIs
Apply AAA (Arrange-Act-Assert), proper pump usage, and matcher selection.
- 🛠️ Core Testing — Unit test groups/setUp/tearDown, widget test pump patterns, integration test binding setup, and async troubleshooting (FakeAsync, runAsync, Timer leaks).
Phase 3: Mocking, Goldens, and E2E
Isolate external dependencies, lock UI visuals, and validate native OS interactions.
- 🧪 Advanced Tools — Mocktail/Mockito, golden tests with cross-platform tolerance, Patrol 4.0 E2E (native permission dialogs, notifications), patrol_finders for widget tests.