Skip to content

Conversation

@Juliatester
Copy link

@Juliatester Juliatester commented Dec 8, 2025

Task 1:

Юнит-тесты для Stellar Burgers

Установлены библиотеки:

pytest - для тестирования
pytest-cov - для измерения покрытия кода

Написаны тесты (43 теста):

Bun - тесты создания булочек, методов get_name(), get_price()
Ingredient - тесты ингредиентов (соусы/начинки), проверка типа, названия, цены
Burger - тесты конструктора бургеров (добавление/удаление ингредиентов, расчет стоимости, формирование чека)
Database - тесты базы данных (получение списков булочек и ингредиентов)

Использованы техники:

✅ Параметризация - тесты с разными данными
✅ Моки (Mock) - для изоляции зависимостей
✅ Фикстуры - для подготовки тестовых данных

Результаты:

43 теста - все проходят

  • Покрытие кода: 100%
  • Время выполнения: 0.14с

Команды для запуска:

    # Установка
   pip install -r requirements.txt

   # Запуск тестов
  pytest tests/ -v

  # Проверка покрытия
  pytest tests/ --cov=praktikum --cov-report=html

Comment on lines 31 to 35
def test_bun_creation_with_float_price(self):
"""Проверяем создание булочки с дробной ценой."""
bun = Bun("test bun", 99.99)
assert bun.get_price() == 99.99
assert bun.get_name() == "test bun" No newline at end of file

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Такого теста быть не должно. Юнит проверяет только один метод

Comment on lines 11 to 28
@pytest.fixture
def burger(self):
return Burger()

@pytest.fixture
def mock_bun(self):
mock_bun = Mock(spec=Bun)
mock_bun.get_name.return_value = "test bun"
mock_bun.get_price.return_value = 100
return mock_bun

@pytest.fixture
def mock_ingredient(self):
mock_ingredient = Mock(spec=Ingredient)
mock_ingredient.get_name.return_value = "test ingredient"
mock_ingredient.get_price.return_value = 50
mock_ingredient.get_type.return_value = INGREDIENT_TYPE_SAUCE
return mock_ingredient
Copy link

@AlexKitIt AlexKitIt Dec 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Нужно исправить: здесь и далее: фикстуры живут в модуле conftest, кроме того, аналогичные там уже описаны

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.

2 participants