Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Haaste: Sisäisten Riippuvuuksien Mockaus | Testing with unittest and pytest
Pythonin Rakenteellinen Ohjelmointi
Osio 5. Luku 5
single

single

Haaste: Sisäisten Riippuvuuksien Mockaus

Pyyhkäise näyttääksesi valikon

Edessäsi on taianomainen haaste: velhokisällinä sinun täytyy varmistaa, että Taikasauvasi loitsuskripti toimii oikein, vaikka manan arvaamattomat voimat vaikuttavat. Sauva käyttää funktiota nimeltä get_mana_level() tunnistaakseen ympäröivän maagisen energian tason. Jos mana on riittävän korkealla, tuliloitsu syöksyy esiin; muuten se hiipuu pettymykseksi. Jotta voit testata loitsusi luotettavasti, sinun täytyy mokata manataso, simuloiden sekä korkeaa että matalaa maagista energiaa.

Tehtävä

Pyyhkäise aloittaaksesi koodauksen

Tehtävänäsi on luoda vankka loitsujärjestelmä ja testata sitä käyttäen mock-objekteja.

  • Luo funktio get_mana_level(), joka palauttaa satunnaisen kokonaisluvun väliltä 0–100.
  • Luo funktio cast_spell(), joka:
    • Kutsuu funktiota get_mana_level().
    • Jos manataso on 50 tai enemmän, palauttaa "Fireball cast successfully!".
    • Muussa tapauksessa palauttaa "The spell fizzled...".
  • Kirjoita kaksi testiä käyttäen unittest-kirjastoa:
    • Käytä patch-toimintoa niin, että get_mana_level() palauttaa arvon 80, ja tarkista että cast_spell() palauttaa onnistumisviestin.
    • Käytä patch-toimintoa niin, että get_mana_level() palauttaa arvon 20, ja tarkista että cast_spell() palauttaa epäonnistumisviestin.

Vinkkejä:

  • Käytä random.randint-funktiota get_mana_level()-funktiossa.
  • Patchaa testeissä oikein kohdistamalla 'get_mana_level'.

Ratkaisu

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 5. Luku 5
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

some-alt