Skip to content

Задание 1: юнит-тесты Stellar Burgers#827

Open
manipulkin wants to merge 3 commits into
Yandex-Practicum:mainfrom
manipulkin:develop1
Open

Задание 1: юнит-тесты Stellar Burgers#827
manipulkin wants to merge 3 commits into
Yandex-Practicum:mainfrom
manipulkin:develop1

Conversation

@manipulkin

Copy link
Copy Markdown

Описание выполненной работы

Подключены библиотеки:

  1. pytest — запуск юнит-тестов
  2. pytest-cov — измерение покрытия кода
  3. allure-pytest — формирование Allure-отчётов по результатам тестов

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

  • папка praktikum/ — исходный код (Burger, Bun, Ingredient, Database)
  • папка tests/ — автотесты и фикстуры
  • файл requirements.txt — список зависимостей
  • папка allure_results/ — результаты прогона тестов для Allure

Написаны юнит-тесты для класса Burger (tests/burger_test.py):

  • проверка начального состояния (init)
  • set_buns — назначение булочки, в том числе граничные случаи
  • add_ingredient — добавление 1–10 ингредиентов
  • remove_ingredient — удаление по индексу, негативные сценарии (IndexError)
  • move_ingredient — перемещение ингредиента, негативные сценарии (IndexError)
  • get_price — расчёт цены, в том числе дробные значения (pytest.approx)
  • get_receipt — формирование чека построчно, проверка вызовов моков

В тестах использовались:

  • моки (unittest.mock.Mock, spec=Ingredient) для Bun и Ingredient
  • параметризация (@pytest.mark.parametrize) для разных сценариев
  • фикстуры pytest (conftest.py): burger, mock_bun, mock_bun_full, mock_ingredients, burger_with_ingredients
  • декораторы Allure (@allure.feature, @allure.story, @allure.title)

Как проверить покрытие 100%

  1. Установить зависимости (из корня проекта Diplom_1):

    pip install -r requirements.txt

  2. Запустить тесты с отчётом о покрытии:

    pytest --cov=praktikum.burger --cov-report=term-missing --cov-report=html tests/burger_test.py

  3. Открыть HTML-отчёт:

    • после команды выше создаётся папка htmlcov/
    • открыть файл htmlcov/index.html в браузере
    • файл praktikum/burger.py должен быть полностью зелёным (100%)
  4. Запуск с Allure:

    pytest tests/burger_test.py --alluredir=allure_results

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant