dart-lang/dart-generate-test-mocks

Définir et générer des objets simulés (mocks) pour les dépendances externes en utilisant `package:mockito` et `build_runner`. Utilisez ceci lors des tests unitaires de classes qui dépendent de services externes complexes comme des API ou des bases de données.

Qu'est-ce que dart-generate-test-mocks ?

Cette compétence est conçue pour les développeurs Dart et Flutter qui souhaitent améliorer leurs tests unitaires en générant automatiquement des objets simulés (mocks) pour les dépendances externes. En combinant `package:mockito` (le framework de mocking standard) et `build_runner` (le générateur de code), elle permet de créer des mocks fiables et cohérents pour des classes interagissant avec des services complexes (API REST, bases de données, etc.). Au lieu d'écrire manuellement des mocks, vous déclarez les dépendances à simuler via des annotations `@GenerateMocks`, et la compétence produit le code Dart correspondant. Cela réduit les efforts de maintenance, améliore la précision des tests et suit les meilleures pratiques du langage. Nécessite un environnement Dart/Flutter avec les dépendances `mockito` et `build_runner` configurées dans le fichier `pubspec.yaml`.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/dart-lang/skills/tree/main/skills/dart-generate-test-mocks

Installed? Explore more Développement et programmation skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

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 dart-generate-test-mocks ?

Définir et générer des objets simulés (mocks) pour les dépendances externes en utilisant package:mockito et build_runner. Utilisez ceci lors des tests unitaires de classes qui dépendent de services externes complexes comme des API ou des bases de données.

Utilisation

  1. Assurez-vous que les dépendances suivantes sont présentes dans votre fichier pubspec.yaml :

    dev_dependencies:
      build_runner: ^2.4.0
      mockito: ^5.4.0
    
  2. Créez un fichier de test (par exemple, my_class_test.dart) et importez les paquets nécessaires :

    import 'package:mockito/annotations.dart';
    import 'package:my_app/models/my_class.dart';
    import 'my_class_test.mocks.dart';
    
  3. Utilisez l'annotation @GenerateMocks pour spécifier les classes à simuler :

    @GenerateMocks([MyClass])
    void main() {
      late MockMyClass mockMyClass;
    
      setUp(() {
        mockMyClass = MockMyClass();
      });
    
      test('doSomething appelle correctement la méthode', () {
        when(mockMyClass.doSomething(
          any,
        )).thenReturn('résultat simulé');
    
        expect(mockMyClass.doSomething('entrée'), 'résultat simulé');
      });
    }
    
  4. Générez le fichier de mocks en exécutant la commande suivante :

    dart run build_runner build
    

    Cela créera un fichier my_class_test.mocks.dart contenant les classes de mock générées automatiquement.

Avantages

  • Maintenance réduite : Les mocks sont automatiquement mis à jour lorsque les dépendances changent.
  • Précision : Les mocks générés reflètent exactement l'interface des classes cibles.
  • Productivité : Évitez d'écrire du code manuel répétitif pour la simulation.

Remarques

  • Cette compétence est compatible avec tous les projets Dart et Flutter.
  • Exécutez dart run build_runner build --delete-conflicting-outputs si des conflits de génération surviennent.
  • Pour un suivi automatique, utilisez dart run build_runner watch en mode développement.

Individual skills in this repo

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

Skills associés