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
-
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 -
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'; -
Utilisez l'annotation
@GenerateMockspour 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é'); }); } -
Générez le fichier de mocks en exécutant la commande suivante :
dart run build_runner buildCela créera un fichier
my_class_test.mocks.dartcontenant 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-outputssi des conflits de génération surviennent. - Pour un suivi automatique, utilisez
dart run build_runner watchen mode développement.