Communitygithub.com

flutter/flutter-add-widget-test

Implémentez un test au niveau composant en utilisant `WidgetTester` pour vérifier le rendu de l'interface utilisateur et les interactions (tap, défilement, saisie de texte). À utiliser pour valider qu'un widget spécifique affiche les bonnes données et répond aux événements comme prévu.

Qu'est-ce que flutter-add-widget-test ?

Cette compétence permet d'implémenter des tests de widgets Flutter à l'aide de la classe `WidgetTester`. Elle est utile pour valider le rendu et les interactions utilisateur d'un composant spécifique, garantissant qu'il affiche les bonnes données et réagit correctement aux événements (tap, défilement, saisie de texte). La compétence prend en charge l'écriture de tests unitaires au niveau composant dans l'environnement Flutter, en utilisant le framework `flutter_test`. Elle repose sur l'utilisation de `tester.pumpWidget()` pour charger le widget, puis de méthodes comme `tester.tap()`, `tester.scroll()`, `tester.enterText()` pour simuler les actions utilisateur, et enfin de vérifications avec `expect()` et `find` pour s'assurer que le comportement est conforme. Cela permet d'automatiser la validation de l'interface utilisateur et de détecter rapidement les régressions.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/flutter/skills/tree/main/skills/flutter-add-widget-test

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait flutter-add-widget-test ?

Implémentez un test au niveau composant en utilisant WidgetTester pour vérifier le rendu de l'interface utilisateur et les interactions (tap, défilement, saisie de texte). À utiliser pour valider qu'un widget spécifique affiche les bonnes données et répond aux événements comme prévu.

Pourquoi l'utiliser

  • Vérifier que les widgets affichent les données correctes et réagissent aux interactions utilisateur.
  • Détecter les régressions visuelles ou comportementales rapidement.
  • Automatiser la validation des composants UI dans un environnement de test Flutter.

Comment ça marche

  1. Importez package:flutter_test/flutter_test.dart.
  2. Utilisez testWidgets() pour définir un test asynchrone.
  3. Appelez tester.pumpWidget() pour charger le widget à tester.
  4. Simulez des interactions (tap, défilement, saisie) avec tester.tap(), tester.scroll(), tester.enterText().
  5. Utilisez tester.pump() ou tester.pumpAndSettle() pour mettre à jour l'interface.
  6. Émettez des assertions avec expect() pour valider l'état attendu.

Exemple

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

void main() {
  testWidgets('MonWidget affiche le bon titre et réagit au clic',
      (WidgetTester tester) async {
    // Charger le widget
    await tester.pumpWidget(
      const MaterialApp(home: Scaffold(body: MonWidget(titre: 'Bonjour'))),
    );

    // Vérifier que le titre apparaît
    expect(find.text('Bonjour'), findsOneWidget);

    // Simuler un tap
    await tester.tap(find.text('Cliquez-moi'));
    await tester.pump();

    // Vérifier que le texte a changé après le clic
    expect(find.text('Texte modifié'), findsOneWidget);
  });
}

Remarques

  • WidgetTester est l'outil principal pour interagir avec l'interface simulée.
  • Utilisez findsOneWidget, findsWidgets, findsNothing pour les assertions de présence.
  • Pour les tests avancés, explorez tester.runAsync() pour les opérations asynchrones.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

flutter/flutter-accessibility

Configure your Flutter app to support assistive technologies like Screen Readers

flutter/flutter-accessibility-audit

Triggers an accessibility scan through the widget_inspector and automatically adds Semantics widgets or missing labels to the source code.

flutter/flutter-adding-home-screen-widgets

Adds home screen widgets to a Flutter app for Android and iOS. Use when providing glanceable app information or quick actions on the device home screen.

flutter/flutter-add-integration-test

Configures Flutter Driver for app interaction and converts MCP actions into permanent integration tests. Use when adding integration testing to a project, exploring UI components via MCP, or automating user flows with the integration_test package.

flutter/flutter-add-widget-preview

Adds interactive widget previews to the project using the previews.dart system. Use when creating new UI components or updating existing screens to ensure consistent design and interactive testing.

flutter/flutter-animating-apps

Implements animated effects, transitions, and motion in a Flutter app. Use when adding visual feedback, shared element transitions, or physics-based animations.

flutter/flutter-animation

Add animated effects to your Flutter app

flutter/flutter-apply-architecture-best-practices

Architects a Flutter application using the recommended layered approach (UI, Logic, Data). Use when structuring a new project or refactoring for scalability.

flutter/flutter-app-size

Measure and reduce the size of the Flutter app bundle, APK, or IPA

flutter/flutter-architecting-apps

Architects a Flutter application using the recommended layered approach (UI, Logic, Data). Use when structuring a new project or refactoring for scalability.

flutter/flutter-architecture

Use the Flutter team's recommended app architecture

flutter/flutter-building-forms

Builds Flutter forms with validation and user input handling. Use when creating login screens, data entry forms, or any multi-field user input.

flutter/flutter-building-layouts

Builds Flutter layouts using the constraint system and layout widgets. Use when creating or refining the UI structure of a Flutter application.

flutter/flutter-building-plugins

Builds Flutter plugins that provide native interop for other apps to use. Use when creating reusable packages that bridge Flutter with platform-specific functionality.

flutter/flutter-build-responsive-layout

Use `LayoutBuilder`, `MediaQuery`, or `Expanded/Flexible` to create a layout that adapts to different screen sizes. Use when you need the UI to look good on both mobile and tablet/desktop form factors.

flutter/flutter-caching

Cache data in a Flutter app

flutter/flutter-caching-data

Implements caching strategies for Flutter apps to improve performance and offline support. Use when retaining app data locally to reduce network requests or speed up startup.

flutter/flutter-concurrency

Execute long-running tasks in a background thread in Flutter

flutter/flutter-databases

Work with databases in a Flutter app

flutter/flutter-embedding-native-views

Embeds native Android, iOS, or macOS views into a Flutter app. Use when integrating complex native components like maps or web views.

Skills associés