Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Challenge : Simulation des Dépendances Internes | Testing with unittest and pytest
Concepts Avancés de Python
Section 5. Chapitre 5
single

single

Challenge : Simulation des Dépendances Internes

Glissez pour afficher le menu

Vous êtes sur le point de relever un défi magique : en tant qu'apprenti sorcier, vous devez vous assurer que le script d'incantation de votre baguette magique fonctionne correctement, même lorsque les forces imprévisibles du mana sont en jeu. La baguette s'appuie sur une fonction appelée get_mana_level() pour détecter l'énergie magique ambiante. Si le niveau de mana est suffisamment élevé, votre sort de feu jaillit ; sinon, il se dissipe en une décevante bouffée. Pour tester votre sort de manière fiable, vous devez simuler le niveau de mana, en reproduisant à la fois une énergie magique élevée et faible.

Tâche

Glissez pour commencer à coder

Votre mission consiste à créer un système de lancement de sorts robuste et à le tester à l'aide de mocks.

  • Créer une fonction get_mana_level() qui retourne un entier aléatoire entre 0 et 100.
  • Créer une fonction cast_spell() qui :
    • Appelle get_mana_level().
    • Si le niveau de mana est supérieur ou égal à 50, retourne "Fireball cast successfully!".
    • Sinon, retourne "The spell fizzled...".
  • Écrire deux tests en utilisant unittest :
    • Utiliser patch pour que get_mana_level() retourne 80, et vérifier que cast_spell() retourne le message de réussite.
    • Utiliser patch pour que get_mana_level() retourne 20, et vérifier que cast_spell() retourne le message d'échec.

Conseils :

  • Utiliser random.randint dans votre fonction get_mana_level().
  • Pour patcher correctement, cibler 'get_mana_level' dans vos tests.

Solution

Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 5. Chapitre 5
single

single

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

some-alt