Menu
Coddy logo textTech

Testowanie i integracja

Część sekcji Programowanie obiektowe ścieżki Dart w Coddy. Lekcja 106 z 110.

challenge icon

Wyzwanie

Łatwy

W poprzedniej lekcji utworzono interfejs administratora do zarządzania zasobami biblioteki. Teraz czas połączyć wszystko w całość, tworząc kompleksowy zestaw testów, który sprawdzi, czy wszystkie elementy systemu zarządzania biblioteką poprawnie ze sobą współpracują.

Dodasz klasę LibraryTester, która uruchamia testy integracyjne wszystkich funkcji biblioteki — sprawdzając, czy książki, użytkownicy, administratorzy, wypożyczanie, wyszukiwanie i zarządzanie zasobami działają zgodnie z oczekiwaniami, gdy są używane razem.

  • book.dart, user.dart, admin.dart, library.dart: Pozostaw istniejące klasy bez zmian.
  • library_tester.dart: Utwórz nową klasę LibraryTester, która sprawdza działanie systemu bibliotecznego. Powinna zawierać instancję Library oraz następujące metody testowe:
    • setupTestData() — rejestruje administratora (A001, Test Admin), dodaje dwie książki za pośrednictwem administratora (978-0-01, Book One, Author A oraz 978-0-02, Book Two, Author B) i rejestruje użytkownika (U001, Test User)
    • testBorrowing() — wypożycza użytkownikowi pierwszą książkę, próbuje wypożyczyć ją ponownie (próba powinna się nie powieść), a następnie ją zwraca. Po zakończeniu wypisuje Borrowing test: PASS.
    • testSearch() — wyszukuje książki, których tytuł zawiera Book, wypisuje Search found: X books, gdzie X oznacza liczbę wyników, a następnie wypisuje Search test: PASS
    • testAdminOperations() — usuwa drugą książkę za pomocą administratora, wypisuje liczbę książek w formacie Books after removal: X, a następnie wypisuje Admin test: PASS
    • runAllTests() — wywołuje setupTestData(), następnie uruchamia po kolei wszystkie trzy metody testowe, a na koniec wypisuje All tests completed!
  • main.dart: Utwórz instancję LibraryTester i wywołaj runAllTests(), aby uruchomić cały zestaw testów.

Oczekiwany wynik:

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!

Spróbuj swoich sił

import 'library_tester.dart';

void main() {
  // TODO: Utwórz instancję LibraryTester i wywołaj runAllTests()
}

Wszystkie lekcje w sekcji Programowanie obiektowe

Poćwicz samodzielnie: Kompilator Dart online