Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Challenge: Mockning av Interna Beroenden | Testing with unittest and pytest
Python Strukturell Programmering
Avsnitt 5. Kapitel 5
single

single

Challenge: Mockning av Interna Beroenden

Svep för att visa menyn

Du står inför en magisk utmaning: som lärlingstrollkarl behöver du säkerställa att din trollstavs besvärjelseskript fungerar korrekt, även när de oförutsägbara manakrafterna är i spel. Trollstaven förlitar sig på en funktion kallad get_mana_level() för att känna av den omgivande magiska energin. Om manan är tillräckligt hög, slår din eldiga besvärjelse ut; om inte, förvandlas den till en besvikande puff. För att testa din besvärjelse pålitligt måste du mocka mananivån, och simulera både hög och låg magisk energi.

Uppgift

Svep för att börja koda

Ditt uppdrag är att skapa ett robust trollformel-system och testa det med hjälp av mocks.

  • Skapa en funktion get_mana_level() som returnerar ett slumpmässigt heltal mellan 0 och 100.
  • Skapa en funktion cast_spell() som:
    • Anropar get_mana_level().
    • Om mananivån är 50 eller högre, returnerar "Fireball cast successfully!".
    • Annars returnerar "The spell fizzled...".
  • Skriv två tester med unittest:
    • Använd patch för att få get_mana_level() att returnera 80, och kontrollera att cast_spell() returnerar framgångsmeddelandet.
    • Använd patch för att få get_mana_level() att returnera 20, och kontrollera att cast_spell() returnerar misslyckandemeddelandet.

Tips:

  • Använd random.randint i din funktion get_mana_level().
  • För att patcha korrekt, rikta in dig på 'get_mana_level' i dina tester.

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 5. Kapitel 5
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

some-alt