Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Tests for BooksCollector

Набор unit-тестов для проверки работы класса BooksCollector.

Структура проекта

main.py — реализация класса BooksCollector

tests.py — unit-тесты

README.md — описание тестов

Служебные директории (pycache) из репозитория исключил.

Инструменты

Python

Pytest

Pytest fixtures

Pytest parametrization

Принципы тестирования

Один тест — один проверяемый метод

Тесты не дублируют друг друга

Общее предусловие вынесено в фикстуру

Параметризация используется для проверки разных входных данных

Тесты сгруппированы по методам класса

Тесты

test_add_new_book_adds_two_different_books Цель: проверить добавление нескольких разных книг в словарь books_genre. Проверка: после добавления двух книг длина словаря равна 2.

test_add_new_book_does_not_add_duplicate_book Цель: проверить, что одну и ту же книгу нельзя добавить повторно. Проверка: при повторном добавлении длина словаря books_genre не увеличивается.

test_add_new_book_with_empty_name_does_not_add_book Цель: проверить запрет добавления книги с пустым названием. Проверка: книга с пустым названием не добавляется в books_genre.

test_add_new_book_with_too_long_name_does_not_add_book Цель: проверить ограничение на максимальную длину названия книги. Проверка: книга с названием длиннее 40 символов не добавляется.

test_set_book_genre_sets_genre_for_existing_book Цель: проверить установку жанра существующей книге. Проверка: после вызова set_book_genre жанр книги корректно сохраняется в books_genre.

test_get_book_genre_returns_expected_value Цель: проверить получение жанра книги в разных состояниях. Проверка:

  • если жанр установлен — возвращается установленное значение;
  • если жанр не установлен — возвращается пустая строка.

test_get_books_with_specific_genre_returns_only_books_with_given_genre Цель: проверить получение списка книг с определённым жанром. Проверка: в результат возвращаются только книги с указанным жанром.

test_get_books_for_children_excludes_books_with_age_rating_genres Цель: проверить формирование списка книг, подходящих для детей. Проверка: книги с возрастным рейтингом не попадают в итоговый список.

test_get_books_genre_returns_current_dictionary Цель: проверить, что метод get_books_genre возвращает актуальный словарь. Проверка: возвращаемый словарь соответствует добавленным книгам.

test_add_book_in_favorites_adds_book Цель: проверить добавление книги в избранное. Проверка: книга появляется в списке favorites.

test_add_book_in_favorites_does_not_add_duplicate Цель: проверить, что книгу нельзя добавить в избранное повторно. Проверка: при повторном добавлении длина списка favorites не увеличивается.

test_get_list_of_favorites_books_returns_added_books Цель: проверить получение списка избранных книг при разном количестве данных. Проверка: метод возвращает список всех ранее добавленных в избранное книг.

test_delete_book_from_favorites_removes_book Цель: проверить удаление книги из избранного. Проверка: после удаления книги список favorites пуст.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages