Menu
Coddy logo textTech

Tests et intégration

Fait partie de la section Programmation Orientée Objet du Journey Dart de Coddy — leçon 106 sur 110.

challenge icon

Défi

Facile

Dans la leçon précédente, vous avez construit une interface d'administration pour gérer l'inventaire de la bibliothèque. Il est maintenant temps de tout rassembler en créant une suite de tests complète qui valide que tous les composants de votre système de gestion de bibliothèque fonctionnent correctement ensemble.

Vous allez ajouter une classe LibraryTester qui exécute des tests d'intégration sur toutes les fonctionnalités de votre bibliothèque - en vérifiant que les livres, les utilisateurs, les administrateurs, les emprunts, la recherche et la gestion de l'inventaire fonctionnent tous comme prévu lorsqu'ils sont utilisés ensemble.

  • book.dart, user.dart, admin.dart, library.dart : Gardez vos classes existantes inchangées.
  • library_tester.dart : Créez une nouvelle classe LibraryTester qui valide votre système de bibliothèque. Elle doit avoir une instance de Library et inclure ces méthodes de test :
    • setupTestData() - enregistre un administrateur (A001, Test Admin), ajoute deux livres via l'administrateur (978-0-01, Book One, Author A et 978-0-02, Book Two, Author B), et enregistre un utilisateur (U001, Test User)
    • testBorrowing() - emprunte le premier livre pour l'utilisateur, tente de l'emprunter à nouveau (devrait échouer), puis le rend. Affiche Borrowing test: PASS après l'achèvement.
    • testSearch() - recherche des livres avec Book dans le titre, affiche Search found: X books où X est le nombre, puis affiche Search test: PASS
    • testAdminOperations() - supprime le deuxième livre en utilisant l'administrateur, affiche le nombre de livres sous la forme Books after removal: X, puis affiche Admin test: PASS
    • runAllTests() - appelle setupTestData(), puis exécute les trois méthodes de test dans l'ordre, et enfin affiche All tests completed!
  • main.dart : Créez une instance de LibraryTester et appelez runAllTests() pour exécuter la suite de tests complète.

Sortie attendue :

A001 added "Book One"
A001 added "Book Two"
U001 borrowed "Book One"
Book not available
U001 returned "Book One"
Borrowing test: PASS
Search found: 2 books
Search test: PASS
A001 removed "Book Two"
Books after removal: 1
Admin test: PASS
All tests completed!

Essayez vous-même

import 'library_tester.dart';

void main() {
  // TODO: Créer une instance de LibraryTester et appeler runAllTests()
}

Toutes les leçons de Programmation Orientée Objet