Que fait dart-add-unit-test ?
Écrire et organiser des tests unitaires pour des fonctions, méthodes et classes avec package:test. À utiliser lors de la création de nouvelle logique ou de la correction de bugs pour garantir que le code reste correct et sans régression.
Description
Cette compétence permet d'ajouter des tests unitaires dans des projets Dart. Elle génère des fichiers de test avec le package package:test, en organisant les tests en groupes (group) et en utilisant des descriptions (test) et des assertions (expect).
Utilisation
Quand l'utiliser
- Lors de l'ajout de nouvelles fonctions, méthodes ou classes.
- Lors de la correction de bugs pour ajouter un test de régression.
- Pour améliorer la couverture de test d'un module existant.
Comment l'utiliser
- Identifier le code à tester : Fournir le fichier source contenant la fonction, méthode ou classe.
- Générer le test : La compétence crée un fichier de test dans le répertoire
test/avec le nom approprié (par exemple,nom_fichier_test.dart). - Organiser les tests : Les tests sont organisés en groupes logiques, avec des descriptions claires pour chaque cas de test.
Exemple
// Fichier source : lib/mon_module.dart
int addition(int a, int b) {
return a + b;
}
Test généré :
// test/mon_module_test.dart
import 'package:test/test.dart';
import 'package:mon_projet/mon_module.dart';
void main() {
group('addition', () {
test('devrait retourner la somme de deux entiers positifs', () {
expect(addition(2, 3), equals(5));
});
test('devrait retourner un nombre négatif pour des entiers négatifs', () {
expect(addition(-2, -3), equals(-5));
});
});
}
Bonnes pratiques
- Nommer les tests de manière descriptive : Utiliser des noms qui expliquent le comportement attendu.
- Tester les cas limites : Inclure des tests pour les valeurs nulles, les listes vides, les entrées invalides, etc.
- Organiser avec
group: Regrouper les tests par fonction, méthode ou classe. - Utiliser
expectavec des matchers : Utiliser des matchers commeequals,isTrue,throwsA, etc.
Plateformes supportées
- Tout projet Dart (applications, packages, etc.).
- Compatible avec les agents IA comme Claude Code, Cursor, Codex.