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-запрос: