Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Challenge: Het Mocken van Interne Afhankelijkheden | Testing with unittest and pytest
Python Structureel Programmeren
Sectie 5. Hoofdstuk 5
single

single

Challenge: Het Mocken van Interne Afhankelijkheden

Veeg om het menu te tonen

Je staat op het punt een magische uitdaging aan te gaan: als leerling-tovenaar moet je ervoor zorgen dat het spreukscript van je Toverstaf correct werkt, zelfs wanneer de onvoorspelbare krachten van mana in het spel zijn. De staf vertrouwt op een functie genaamd get_mana_level() om de omgevingsmagie te detecteren. Als de mana hoog genoeg is, komt je vurige spreuk tot leven; zo niet, dan verandert deze in een teleurstellend wolkje rook. Om je spreuk betrouwbaar te testen, moet je het mana-niveau mocken, zodat je zowel hoge als lage magische energie kunt simuleren.

Taak

Veeg om te beginnen met coderen

Je opdracht is om een robuust spreukensysteem te maken en dit te testen met behulp van mocks.

  • Maak een functie get_mana_level() die een willekeurig geheel getal tussen 0 en 100 retourneert.
  • Maak een functie cast_spell() die:
    • get_mana_level() aanroept.
    • Als het mana-niveau 50 of hoger is, retourneert "Fireball cast successfully!".
    • Anders retourneert "The spell fizzled...".
  • Schrijf twee tests met unittest:
    • Gebruik patch om get_mana_level() 80 te laten retourneren en controleer dat cast_spell() het succesbericht retourneert.
    • Gebruik patch om get_mana_level() 20 te laten retourneren en controleer dat cast_spell() het mislukte bericht retourneert.

Tips:

  • Gebruik random.randint in je functie get_mana_level().
  • Om correct te patchen, target 'get_mana_level' in je tests.

Oplossing

Switch to desktopSchakel over naar desktop voor praktijkervaringGa verder vanaf waar je bent met een van de onderstaande opties
Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 5. Hoofdstuk 5
single

single

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

some-alt