Menu
Coddy logo textTech

Тестирование и интеграция

Часть раздела Объектно-ориентированное программирование путешествия по Dart на Coddy — урок 106 из 110.

challenge icon

Задание

Легко

В предыдущем уроке вы создали интерфейс администратора для управления инвентарем библиотеки. Теперь пришло время объединить все вместе, создав комплексный набор тестов, который подтвердит, что все компоненты вашей системы управления библиотекой (Library Management System) корректно работают друг с другом.

Вы добавите класс LibraryTester, который запускает интеграционные тесты для всех функций вашей библиотеки — проверяя, что книги, пользователи, администраторы, процессы заимствования, поиска и управления инвентарем функционируют должным образом при совместном использовании.

  • book.dart, user.dart, admin.dart, library.dart: Оставьте существующие классы без изменений.
  • library_tester.dart: Создайте новый класс LibraryTester, который проверяет вашу библиотечную систему. Он должен иметь экземпляр Library и включать следующие тестовые методы:
    • setupTestData() — регистрирует администратора (A001, Test Admin), добавляет две книги через администратора (978-0-01, Book One, Author A и 978-0-02, Book Two, Author B) и регистрирует пользователя (U001, Test User)
    • testBorrowing() — берет первую книгу для пользователя, пытается взять ее снова (должно завершиться неудачей), затем возвращает ее. Выводит Borrowing test: PASS после завершения.
    • testSearch() — ищет книги со словом Book в названии, выводит Search found: X books, где X — количество, затем выводит Search test: PASS
    • testAdminOperations() — удаляет вторую книгу, используя администратора, выводит количество книг в формате Books after removal: X, затем выводит Admin test: PASS
    • runAllTests() — вызывает setupTestData(), затем запускает все три тестовых метода по порядку и, наконец, выводит All tests completed!
  • main.dart: Создайте экземпляр LibraryTester и вызовите runAllTests() для выполнения полного набора тестов.

Ожидаемый вывод:

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!

Попробуйте сами

import 'library_tester.dart';

void main() {
  // TODO: Создайте экземпляр LibraryTester и вызовите runAllTests()
}

Все уроки раздела Объектно-ориентированное программирование