Вступить в клуб →
средняявопросТестирование: pytest, фикстуры, моки

Покрытие функции 100%, а обычные клиенты получили скидку VIP

def discount(total, is_vip):
    rate = 0.2 if is_vip else 0.2   # опечатка: должно быть 0
    return total * (1 - rate)

def test_vip_discount():
    assert discount(1000, is_vip=True) == 800

Отчёт coverage показывает 100% строк функции. Почему опечатка не поймана?

  • Строка выполнилась, но ветка is_vip=False ни разу не проверялась
  • coverage не учитывает тернарные выражения и завышает процент
  • Опечатка в числе не влияет на результат при total=1000
  • Покрытие 100% гарантирует корректность, ошибка в самом тесте

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела