Agent skill

Flutter Testing Apps

by btwld in btwld/superdeck

Implements unit, widget, and integration tests for a Flutter app.

BSD-3-ClauseAuto-check passedTesting & QA

Install Flutter Testing Apps

skills CLI
$ npx skills add btwld/superdeck --skill flutter-testing-apps -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install btwld/superdeck flutter-testing-apps --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/btwld/superdeck.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/flutter-testing-apps .claude/skills/flutter-testing-apps && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
flutter-testing-apps
GitHub stars
129
Token cost
~2.2k tokens
SKILL.md length
800 words
Files
1
Skills in repo
23
Repo updated
First seen
Licence
BSD-3-Clause

At a glance

Implements unit, widget, and integration tests for a Flutter app.

  • Works in 4 steps: If testing on Mobile (Local) → If testing on Web → If testing on Linux (CI System) → …
  • Ensuring code quality and preventing regressions through automated testing
  • SKILL.md covers SuperDeck workspace, Contents, Core Testing Strategies and Architectural Testing Guidelines, plus 3 more sections
  • Calls flutter

What it does

Flutter Testing Apps is an agent skill from btwld/superdeck. Implements unit, widget, and integration tests for a Flutter app. Use when ensuring code quality and preventing regressions through automated testing.

Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Testing & QA, covering Integration testing, Cross-platform mobile apps and Code quality. It works with Flutter. The repository describes itself as: Presentation slides for Flutter with Flutter. The licence is BSD-3-Clause.

When your agent uses it

  • Ensuring code quality and preventing regressions through automated testing
  • Tasks that involve Integration testing
  • Tasks that involve Cross-platform mobile apps

Example prompts

  • “Use the flutter-testing-apps skill to implement unit, widget, and integration tests for a Flutter app”
  • “/flutter-testing-apps”

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. If testing on Mobile (Local)
  2. If testing on Web
  3. If testing on Linux (CI System)
  4. If testing via Firebase Test Lab

What it can do on your machine

Read from SKILL.md and the folder at commit 815a746. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • flutter

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Flutter Testing Apps loads about 2.2k tokens when it runs. Until then it costs about 43 tokens; SKILL.md has 800 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~43
When it runs · the whole SKILL.md, loaded when a task matches
~2.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from btwld/superdeck at commit 815a746, republished under its BSD-3-Clause licence (© btwld). 800 words, ~2,159 tokens.

Download SKILL.mdSave it as .claude/skills/flutter-testing-apps/SKILL.md (or your agent's skills folder).
name
flutter-testing-apps
description
Implements unit, widget, and integration tests for a Flutter app. Use when ensuring code quality and preventing regressions through automated testing.
metadata.model
models/gemini-3.1-pro-preview
metadata.last_modified
Thu, 12 Mar 2026 22:22:10 GMT

Testing Flutter Applications

SuperDeck workspace

Use the pinned SDK through fvm; follow the root AGENTS.md for code generation before tests. Select checks by the behavior under test:

  • fvm dart run melos run test runs package unit/widget tests, excluding ci-excluded suites.
  • fvm dart run melos run test:integration:macos exercises the demo on the local macOS desktop; test:integration targets Linux.
  • fvm dart run melos run test:e2e:web builds the demo and runs Chromium/WebKit smoke tests.
  • test:all combines package tests and Linux integration tests; it does not cover browsers or live AI generation.

Playground generation checkpoints live in packages/playground/test_live, outside those Melos suites. Use the deterministic fake checkpoint for provider-free validation; consult AGENTS.md for the opt-in live test and define-file requirements. Match new regression tests to the existing Signals/controllers and feature folders rather than introducing ViewModels solely for these examples.

Contents

Core Testing Strategies

Balance your testing suite across three main categories to optimize for confidence, maintenance cost, dependencies, and execution speed.

Unit Tests

Use unit tests to verify the correctness of a single function, method, or class under various conditions.

  • Mock all external dependencies.
  • Do not involve disk I/O, screen rendering, or user actions from outside the test process.
  • Execute using the test or flutter_test package.
Widget Tests

Use widget tests (component tests) to ensure a single widget's UI looks and interacts as expected.

  • Provide the appropriate widget lifecycle context using WidgetTester.
  • Use Finder classes to locate widgets and Matcher constants to verify their existence and state.
  • Test views and UI interactions without spinning up the full application.
Integration Tests

Use integration tests (end-to-end or GUI testing) to validate how individual pieces of an app work together and to capture performance metrics on real devices.

  • Add the integration_test package as a dependency.
  • Run on physical devices, OS emulators, or Firebase Test Lab.
  • Prioritize integration tests for routing, dependency injection, and critical user flows.

Architectural Testing Guidelines

Design your application for observability and testability. Ensure all components can be tested both in isolation and together.

  • ViewModels: Write unit tests for every ViewModel class. Test the UI logic without relying on Flutter libraries or testing frameworks.
  • Repositories & Services: Write unit tests for every service and repository. Mock the underlying data sources (e.g., HTTP clients, local databases).
  • Views: Write widget tests for all views. Pass faked or mocked ViewModels and Repositories into the widget tree to isolate the UI.
  • Fakes over Mocks: Prefer creating Fake implementations of your repositories (e.g., FakeUserRepository) over using mocking libraries when testing ViewModels and Views to ensure well-defined inputs and outputs.
Show full SKILL.md (370 more words)Show less

Plugin Testing Guidelines

When testing plugins, combine Dart tests with native platform tests to ensure full coverage across the method channel.

  • Dart Tests: Use Dart unit and widget tests for the Dart-facing API. Mock the platform channel to validate Dart logic.
  • Native Unit Tests: Implement native unit tests for isolated platform logic.
    • Android: Configure JUnit tests in android/src/test/.
    • iOS/macOS: Configure XCTest tests in example/ios/RunnerTests/ and example/macos/RunnerTests/.
    • Linux/Windows: Configure GoogleTest tests in linux/test/ and windows/test/.
  • Native UI Tests: Use Espresso (Android) or XCUITest (iOS) if the plugin requires native UI interactions.
  • Integration Tests: Write at least one integration test for each platform channel call to verify Dart-to-Native communication.
  • End-to-End Fallback: If integration tests cannot cover a flow (e.g., mocking device state), synthesize calls to the method channel entry point using native unit tests, and test the Dart public API using Dart unit tests.

Workflows

Workflow: Implementing a Component Test Suite

Copy and track this checklist when implementing tests for a new architectural feature.

  • Task Progress
    • Create Fake implementations for any new Repositories or Services.
    • Write Unit Tests for the Repository (mocking the API/Database).
    • Write Unit Tests for the ViewModel (injecting the Fake Repositories).
    • Write Widget Tests for the View (injecting the ViewModel and Fake Repositories).
    • Write an Integration Test for the critical path involving this feature.
    • Run validator -> review coverage -> fix missing edge cases.
Workflow: Running Integration Tests

Follow conditional logic based on the target platform when executing integration tests.

  1. If testing on Mobile (Local):
    • Connect the Android/iOS device or emulator.
    • Run: flutter test integration_test/app_test.dart
  2. If testing on Web:
    • Install and launch ChromeDriver: chromedriver --port=4444
    • Run: flutter drive --driver=test_driver/integration_test.dart --target=integration_test/app_test.dart -d chrome
  3. If testing on Linux (CI System):
    • Invoke an X server using xvfb-run to provide a display environment.
    • Run: xvfb-run flutter test integration_test/app_test.dart -d linux
  4. If testing via Firebase Test Lab:
    • Build the Android test APKs: flutter build apk --debug and ./gradlew app:assembleAndroidTest
    • Upload the App APK and Test APK to the Firebase Console.

Examples

Example: ViewModel Unit Test

Demonstrates testing a ViewModel using a Fake Repository.

dart
import 'package:flutter_test/flutter_test.dart';

void main() {
  group('HomeViewModel tests', () {
    test('Load bookings successfully', () {
      // Inject fake dependencies
      final viewModel = HomeViewModel(
        bookingRepository: FakeBookingRepository()..createBooking(kBooking),
        userRepository: FakeUserRepository(),
      );

      // Verify state
      expect(viewModel.bookings.isNotEmpty, true);
    });
  });
}
Example: View Widget Test

Demonstrates testing a View by pumping a localized widget tree with fake dependencies.

dart
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';

void main() {
  group('HomeScreen tests', () {
    late HomeViewModel viewModel;
    late FakeBookingRepository bookingRepository;

    setUp(() {
      bookingRepository = FakeBookingRepository()..createBooking(kBooking);
      viewModel = HomeViewModel(
        bookingRepository: bookingRepository,
        userRepository: FakeUserRepository(),
      );
    });

    testWidgets('renders bookings list', (WidgetTester tester) async {
      await tester.pumpWidget(
        MaterialApp(
          home: HomeScreen(viewModel: viewModel),
        ),
      );

      // Verify UI state
      expect(find.byType(ListView), findsOneWidget);
      expect(find.text('Booking 1'), findsOneWidget);
    });
  });
}
Example: Integration Test

Demonstrates a full end-to-end test using the integration_test package.

dart
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:integration_test/integration_test.dart';
import 'package:my_app/main.dart';

void main() {
  IntegrationTestWidgetsFlutterBinding.ensureInitialized();

  group('end-to-end test', () {
    testWidgets('tap on the floating action button, verify counter', (tester) async {
      // Load app widget
      await tester.pumpWidget(const MyApp());

      // Verify initial state
      expect(find.text('0'), findsOneWidget);

      // Find and tap the button
      final fab = find.byKey(const ValueKey('increment'));
      await tester.tap(fab);

      // Trigger a frame to allow animations/state to settle
      await tester.pumpAndSettle();

      // Verify updated state
      expect(find.text('1'), findsOneWidget);
    });
  });
}

© btwld, BSD-3-Clause. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/flutter-testing-apps of btwld/superdeck.

Open the folder on GitHubat commit 815a746

Compare with similar skills

Flutter Testing Apps next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Flutter Testing Apps compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Flutter Testing Apps this skillbtwld/superdeck129—~2.2kAutomated safety check: PassBSD-3-Clause
Flutter TestingMADTeacher/mad-agents-skills110—~1.5kAutomated safety check: PassMIT
Flutter TesterFNOSP/FlyNarwhal495—~1.4kAutomated safety check: PassAGPL-3.0
Mobile Testingirahardianto/awesome-agv157—~1.8kAutomated safety check: NotesMIT
Flutter Add Integration Testabdulmominsakib/localmind261—~1.8kAutomated safety check: PassMIT
Testingevanca/flutter-ai-rules647—~1.1kAutomated safety check: PassMIT

Similar skills

  • Flutter Testing

    MADTeacher/mad-agents-skills

    Write, fix, review, debug, and validate Flutter tests for apps, packages, and plugins.

    110 GitHub stars~1.5k tokensUpdated 5 mo ago
    Testing & QAAuto-check passed
  • Flutter Tester

    FNOSP/FlyNarwhal

    A skill your agent uses when creating, writing, fixing, or reviewing tests in a Flutter project.

    495 GitHub stars~1.4k tokensUpdated yesterday
    MobileAuto-check passed
  • Mobile Testing

    irahardianto/awesome-agv

    Mobile E2E testing patterns — Flutter integrationtest, Patrol, Maestro, golden testing, device matrix, and test data management.

    157 GitHub stars~1.8k tokensUpdated 2 days ago
    Testing & QAAuto-check: notes
  • Flutter Add Integration Test

    abdulmominsakib/localmind

    Configures Flutter Driver for app interaction and converts MCP actions into permanent integration tests.

    261 GitHub stars~1.8k tokensUpdated today
    Testing & QAAuto-check passed
  • Testing

    evanca/flutter-ai-rules

    A skill your agent uses when writing or reviewing Flutter/Dart tests (unit, widget, golden), fixing flaky tests, adding coverage, or choosing between unit and widget tests.

    647 GitHub stars~1.1k tokensUpdated 23 days ago
    Testing & QAAuto-check passed
  • Specialist Integration Test Generator

    HoangNguyen0403/agent-skills-standard

    Generates one integration/E2E test from an approved test case spec using existing project patterns.

    570 GitHub stars~525 tokensUpdated yesterday
    Testing & QAAuto-check passed

More from btwld/superdeck

All 23 skills in this repo
  • Create, review, or edit SuperDeck Markdown presentations and Flutter presentation apps.

    129 GitHub stars~649 tokensUpdated 9 days ago
    Auto-check passed
  • Adds home screen widgets to a Flutter app for Android and iOS.

    129 GitHub stars~2.2k tokensUpdated 9 days ago
    Auto-check passed
  • Flutter Animating Apps

    btwld/superdeck

    Implements animated effects, transitions, and motion in a Flutter app.

    129 GitHub stars~1.9k tokensUpdated 9 days ago
    Auto-check passed
  • Architects a Flutter application using the recommended layered approach (UI, Logic, Data).

    129 GitHub stars~1.8k tokensUpdated 9 days ago
    Auto-check passed
  • Flutter Building Forms

    btwld/superdeck

    Builds Flutter forms with validation and user input handling.

    129 GitHub stars~1.4k tokensUpdated 9 days ago
    Auto-check passed
  • Builds Flutter layouts using the constraint system and layout widgets.

    129 GitHub stars~1.5k tokensUpdated 9 days ago
    Auto-check passed

Works with

Questions about Flutter Testing Apps

What does Flutter Testing Apps do?

Implements unit, widget, and integration tests for a Flutter app. Flutter Testing Apps is an agent skill from btwld/superdeck. Implements unit, widget, and integration tests for a Flutter app.

When should I use Flutter Testing Apps?

Flutter Testing Apps fits situations like: ensuring code quality and preventing regressions through automated testing; tasks that involve Integration testing; tasks that involve Cross-platform mobile apps.

How do I install Flutter Testing Apps in Claude Code?

Run `npx skills add btwld/superdeck --skill flutter-testing-apps -a claude-code`. Or copy the skill folder (.agents/skills/flutter-testing-apps in btwld/superdeck) into .claude/skills/flutter-testing-apps in your project. Claude Code loads it when a task matches its description.

How do I install Flutter Testing Apps in Codex?

Run `npx skills add btwld/superdeck --skill flutter-testing-apps -a codex`. Or copy the skill folder (.agents/skills/flutter-testing-apps in btwld/superdeck) into .agents/skills/flutter-testing-apps in your project. Codex loads it when a task matches its description.

Can I use Flutter Testing Apps in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add btwld/superdeck --skill flutter-testing-apps -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/flutter-testing-apps, .gemini/skills/flutter-testing-apps, .github/skills/flutter-testing-apps and .opencode/skills/flutter-testing-apps in your project.

What does Flutter Testing Apps need to run?

Going by SKILL.md and its folder, Flutter Testing Apps needs the command-line tools its instructions call (flutter).

Does Flutter Testing Apps access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Flutter Testing Apps safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Flutter Testing Apps use?

Flutter Testing Apps is published under the BSD-3-Clause licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Flutter Testing Apps use?

About 2.2k tokens (SKILL.md is roughly 8.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Flutter Testing Apps?

Skills that share tags, products or a category with Flutter Testing Apps: Flutter Testing (MADTeacher/mad-agents-skills, 110 stars), Flutter Tester (FNOSP/FlyNarwhal, 495 stars), Mobile Testing (irahardianto/awesome-agv, 157 stars) and Flutter Add Integration Test (abdulmominsakib/localmind, 261 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Flutter Testing Apps?

btwld (a GitHub organization) maintains it in btwld/superdeck, which has 129 GitHub stars. The repository holds 23 skills in this directory. The repository was last updated on September 28, 2026.

Source: btwld/superdeck on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.