Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Challenge: Mocking Internal Dependencies | Testing with unittest and pytest
Python Structural Programming
Sección 5. Capítulo 5
single

single

Challenge: Mocking Internal Dependencies

Desliza para mostrar el menú

You are about to face a magical challenge: as an apprentice wizard, you need to ensure your Magic Wand’s spell-casting script behaves correctly, even when the unpredictable forces of mana are at play. The wand relies on a function called get_mana_level() to sense the ambient magical energy. If the mana is high enough, your fiery spell bursts forth; if not, it fizzles into a disappointing puff. To test your spell reliably, you must mock the mana level, simulating both high and low magical energy.

Tarea

Desliza para comenzar a programar

Your mission is to create a robust spell-casting system and test it using mocks.

  • Create a function get_mana_level() that returns a random integer from 0 to 100.
  • Create a function cast_spell() that:
    • Calls get_mana_level().
    • If the mana level is 50 or more, returns "Fireball cast successfully!".
    • Otherwise, returns "The spell fizzled...".
  • Write two tests using unittest:
    • Use patch to make get_mana_level() return 80, and check that cast_spell() returns the success message.
    • Use patch to make get_mana_level() return 20, and check that cast_spell() returns the fizzle message.

Hints:

  • Use random.randint in your get_mana_level() function.
  • To patch correctly, target 'get_mana_level' in your tests.

Solución

Switch to desktopCambia al escritorio para practicar en el mundo realContinúe desde donde se encuentra utilizando una de las siguientes opciones
¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 5. Capítulo 5
single

single

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

some-alt