Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Challenge: Mockning af Interne Afhængigheder | Testing with unittest and pytest
Python Strukturel Programmering
Sektion 5. Kapitel 5
single

single

Challenge: Mockning af Interne Afhængigheder

Stryg for at vise menuen

Du står over for en magisk udfordring: som lærlingetroldmand skal du sikre, at din tryllestavs trylleformular-script fungerer korrekt, selv når de uforudsigelige manakræfter er i spil. Tryllestaven er afhængig af en funktion kaldet get_mana_level() til at registrere den omgivende magiske energi. Hvis manaen er høj nok, udløses din ildformel; hvis ikke, bliver det til en skuffende røgsky. For at teste din formular pålideligt skal du mocke mana-niveauet og simulere både høj og lav magisk energi.

Opgave

Swipe to start coding

Din opgave er at skabe et robust trylleformular-system og teste det ved hjælp af mocks.

  • Opret en funktion get_mana_level(), der returnerer et tilfældigt heltal fra 0 til 100.
  • Opret en funktion cast_spell(), der:
    • Kalder get_mana_level().
    • Hvis mana-niveauet er 50 eller højere, returnerer "Fireball cast successfully!".
    • Ellers returnerer "The spell fizzled...".
  • Skriv to tests ved hjælp af unittest:
    • Brug patch til at få get_mana_level() til at returnere 80, og kontroller at cast_spell() returnerer succesbeskeden.
    • Brug patch til at få get_mana_level() til at returnere 20, og kontroller at cast_spell() returnerer fejlslagen besked.

Tips:

  • Brug random.randint i din get_mana_level() funktion.
  • For at patche korrekt, målret mod 'get_mana_level' i dine tests.

Løsning

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 5. Kapitel 5
single

single

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

some-alt