What problem does it solve? Flutter test suites often follow an outdated pyramid ratio, mock away the database, and leak wall-clock time into domain logic, producing slow, flaky tests that prove nothing about real behavior. This Skill defines a concrete test doctrine: test each behavior at the cheapest tier that can assert it, and make every test a build-pass/fail signal. ## Core Features & Use Cases - Layered test harnesses: Per-layer patterns for pure Dart domain packages (package:test, injected Clock), in-memory Drift databases (NativeDatabase.memory), headless Riverpod Notifiers via ProviderContainer, and integration tests. - Property and fuzz testing: Seeded fuzz loops against independent oracles, round-trip conversion tests, rounding goldens, and absence-of-a-failure-class assertions over enum-driven fake environments. - Fakes over mocks: Bare-implements fakes for owned interfaces, mocktail reserved for external dependencies with registerFallbackValue discipline, and grep-based hygiene scripts that ban DateTime.now(), mocked DAOs, pumpAndSettle, and mockito. - Coverage governance: File-level 100% floors on unrecoverable-bug files (migrations, money allocation, wire-format parsers), the coverage-lies-upward fix, suite-time budgets, and a named manual pre-release pass for structurally untestable paths. - Use Case: When adding a new feature with a Drift table and a Riverpod Notifier, use this Skill to write a real in-memory database test proving the CHECK constraint, a headless ProviderContainer test driving the Notifier, and a seeded fuzz test for any allocation math. ## Quick Start Ask the AI to write tests for a new Flutter feature following the testing-strategy doctrine, choosing the cheapest test tier per behavior.