Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Herausforderung: Mocking Interner Abhängigkeiten | Testing with unittest and pytest
Python Fortgeschrittene Konzepte
Abschnitt 5. Kapitel 5
single

single

Herausforderung: Mocking Interner Abhängigkeiten

Swipe um das Menü anzuzeigen

Du stehst vor einer magischen Herausforderung: Als Zauberlehrling musst du sicherstellen, dass das Zauberskript deines Zauberstabs korrekt funktioniert, selbst wenn die unberechenbaren Kräfte des Manas wirken. Der Zauberstab verlässt sich auf eine Funktion namens get_mana_level(), um die Umgebungsenergie zu erfassen. Ist das Mana hoch genug, entfacht dein Feuerspruch; andernfalls verpufft er in einer enttäuschenden Rauchwolke. Um deinen Zauber zuverlässig zu testen, musst du den Manastand mocken und sowohl hohe als auch niedrige magische Energie simulieren.

Aufgabe

Wischen, um mit dem Codieren zu beginnen

Ihre Aufgabe ist es, ein robustes Zauberspruch-System zu erstellen und dieses mithilfe von Mocks zu testen.

  • Erstellen Sie eine Funktion get_mana_level(), die eine zufällige Ganzzahl zwischen 0 und 100 zurückgibt.
  • Erstellen Sie eine Funktion cast_spell(), die:
    • get_mana_level() aufruft.
    • Wenn das Mana-Level 50 oder höher ist, gibt sie "Fireball cast successfully!" zurück.
    • Andernfalls gibt sie "The spell fizzled..." zurück.
  • Schreiben Sie zwei Tests mit unittest:
    • Verwenden Sie patch, um get_mana_level() den Wert 80 zurückgeben zu lassen, und prüfen Sie, dass cast_spell() die Erfolgsnachricht zurückgibt.
    • Verwenden Sie patch, um get_mana_level() den Wert 20 zurückgeben zu lassen, und prüfen Sie, dass cast_spell() die Fizzle-Nachricht zurückgibt.

Hinweise:

  • Verwenden Sie random.randint in Ihrer Funktion get_mana_level().
  • Um korrekt zu patchen, zielen Sie in Ihren Tests auf 'get_mana_level'.

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 5. Kapitel 5
single

single

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

some-alt