Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Завдання: Імітація Внутрішніх Залежностей | Тестування з Unittest і Pytest
Структурне програмування на Python
Секція 5. Розділ 5
single

single

Завдання: Імітація Внутрішніх Залежностей

Свайпніть щоб показати меню

Вас чекає магічне випробування: як учень-чарівник, ви повинні переконатися, що скрипт для чаклування вашої Чарівної Палички працює правильно, навіть коли непередбачувані сили мани впливають на результат. Паличка використовує функцію get_mana_level(), щоб визначити рівень навколишньої магічної енергії. Якщо мани достатньо, ваш вогняний заклинання спалахує; якщо ні — воно розсіюється у вигляді невдалого клубка диму. Щоб надійно протестувати ваше заклинання, потрібно замокати рівень мани, імітуючи як високий, так і низький рівень магічної енергії.

Завдання

Проведіть, щоб почати кодувати

Ваше завдання — створити надійну систему накладання заклять і протестувати її за допомогою моків.

  • Створіть функцію get_mana_level(), яка повертає випадкове ціле число від 0 до 100.
  • Створіть функцію cast_spell(), яка:
    • Викликає get_mana_level().
    • Якщо рівень мани 50 або більше, повертає "Fireball cast successfully!".
    • Інакше повертає "The spell fizzled...".
  • Напишіть два тести з використанням unittest:
    • Використайте patch, щоб змусити get_mana_level() повертати 80, і перевірте, що cast_spell() повертає повідомлення про успіх.
    • Використайте patch, щоб змусити get_mana_level() повертати 20, і перевірте, що cast_spell() повертає повідомлення про невдачу.

Підказки:

  • Використовуйте random.randint у функції get_mana_level().
  • Для правильного патчінгу вказуйте 'get_mana_level' у ваших тестах.

Рішення

Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 5. Розділ 5
single

single

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

some-alt