10. Тестирование - MaxCiv/LibraryArchitecture GitHub Wiki

Тестирование программных слоёв (кроме слоя представления) проводилось с помощью тестов, использующих библиотеку JUnit4.

Для тестирования бизнес-логики были написаны JUnit тесты (находятся в модуле test, пакете businesslogic.entities.users):

  • LibrarianTest — класс для проверки методов библиотекаря;
  • ReaderTest — класс для проверки методов читателя;
  • SupplierTest — класс для проверки методов поставщика.

Для тестирования слоя источников данных написан JUnit тест MappersRepositoryTest (находится в модуле test, пакете storage), который проверяет все основные методы класса репозитория и преобразователей.

Для тестирования взаимодействия с сервисом Google Books был написан класс GoogleBooksServiceTest, который проверяет все функции на работоспособность.

Комплексное тестирование

Тестирование приложения

Экран входа в систему предусматривает следующие ошибочные ситуации:

  • пустые поля ввода данных

  • неверный логин или пароль

Главный интерфейс библиотекаря содержит таблицы со всеми книгами в библиотеке, отданными книгами, обменами, заказами, действиями, которым нужно подтверждение библиотекаря, пользователями. Каждый пользователь может выйти из своего профиля и вернуться на экран входа. Библиотекарь может зарегистрировать нового пользователя, добавить новую книгу в библиотеку, заказать книгу, подтвердить выдачу книги или обмен, забрать книгу у читателя.

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

При регистрации нового пользователя открывается дополнительное окно.

Предусмотрены следующие ошибочные ситуации:

  • пустые поля ввода
  • различные пароли в двух полях ввода

В случае успешной регистрации библиотекарь получит уведомление.

При открытии нового заказа открывается дополнительное окно.

Введённая книга должна существовать и быть готовой к заказу, поставщик тоже должен существовать.

В случае успеха библиотекарь получит уведомление.

При добавлении новой книги открывается дополнительное окно.

При вводе названия или автора будет осуществляться поиск аналогичных книжек среди Google Books, подходящий вариант можно выбрать и поля ввода заполнятся автоматически.

Предусмотрены следующие ошибочные ситуации:

  • пустые поля ввода
  • неверные данные в полях ввода
  • отсутствует ID владельца или он неверен у книги на обмен

В случае успеха книга будет добавлена в библиотеку и библиотекарь получит уведомление.

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

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

Главный интерфейс поставщика предельно прост, он содержит таблицы со всеми книгами в библиотеке и заказами заказчика. Заказчик может завершить или отклонить заказ. Для этого нужно выбрать правильную строку в таблице и нажать на соответствующую кнопку.

В случае ошибки будет выведено сообщение.

Программа имеет множество мелких особенностей, которые повышают удобство использования. Сообщения об успехе/ошибках скрываются через несколько секунд автоматически, копирование ID из полей формы происходит само, по возможности часть полей ввода заполнится нужной информацией, выделяется весь текст в определённых полях, подсказки предельно точно указывают на ошибки и методы их устранения и пр.

Тестирование предоставляемого внешнего API

Ответ на GET-запрос:

<< 9. Интеграция | 11. Выводы >>